git clone push和 git pull 操作都正常,但是不能push,这是为什么

在Github和Git上fork之简单指南
评论: &分享: &&&&
以我的经验来看,刚接触Git和GitHub时,最困扰的一件事情就是尝试解决下面的问题:在Git和GitHub上,我能做什么?
Git教程往往不会解决这个问题,因为它集中篇幅来教你Git命令和概念,并且不认为你会使用GitHub。一定程度上弥补了这一缺陷,但是它每篇文章的关注点都较为狭隘,而且没有提供关于"Git vs GitHub"问题的概念性概述。
如果你是习惯于先理解概念,再着手代码的学习者,而且你也是Git和GitHub的初学者,我建议你先理解清楚什么是fork。为什么呢 ?
Fork是在GitHub起步最普遍的方式。
Fork只需要很少的Git命令,但是起得作用却非常大。
Fork提供了对Git和GitHub最基础的了解,有益于你之后的工作。
本篇指南使用两张简单的图表,来教会你fork的两种主要工作流程。我并不打算涉及任何代码,但是在结论中,我会把你需要使用的代码的链接给你。
fork并且更新一个仓库
现在有这样一种情形:有一个叫做Joe的程序猿写了一个游戏程序,而你可能要去改进它。并且Joe将他的代码放在了GitHub仓库上。下面是你要做的事情:
fork并且更新GitHub仓库的图表演示
Fork他的仓库:这是GitHub操作,这个操作会复制Joe的仓库(包括文件,提交历史,issues,和其余一些东西)。复制后的仓库在你自己的GitHub帐号下。目前,你本地计算机对这个仓库没有任何操作。
Clone你的仓库:这是Git操作。使用该操作让你发送"请给我发一份我仓库的复制文件"的命令给GitHub。现在这个仓库就会存储在你本地计算机上。
更新某些文件:现在,你可以在任何程序或者环境下更新仓库里的文件。
提交你的更改:这是Git操作。使用该操作让你发送"记录我的更改"的命令至GitHub。此操作只在你的本地计算机上完成。
将你的更改push到你的GitHub仓库:这是Git操作。使用该操作让你发送"这是我的修改"的信息给GitHub。Push操作不会自动完成,所以直到你做了push操作,GitHub才知道你的提交。
给Joe发送一个pull request:如果你认为Joe会接受你的修改,你就可以给他发送一个pull request。这是GitHub操作,使用此操作可以帮助你和Joe交流你的修改,并且询问Joe是否愿意接受你的"pull request",当然,接不接受完全取决于他自己。
如果Joe接受了你的pull request,他将把那些修改拉到自己的仓库。胜利!
同步一个fork
Joe和其余贡献者已经对这个项目做了一些修改,而你将在他们的修改的基础上,还要再做一些修改。在你开始之前,你最好"同步你的fork",以确保在最新的复制版本里工作。下面是你要做的:
同步GitHub fork的图表示意图
从Joe的仓库中取出那些变化的文件:这是Git操作,使用该命令让你可以从Joe的仓库获取最新的文件。
将这些修改合并到你自己的仓库:这是Git操作,使用该命令使得那些修改更新到你的本地计算机(那些修改暂时存放在一个"分支"中)。记住:步骤1和2经常结合为一个命令使用,合并后的Git命令叫做"pull"。
将那些修改更新推送到你的GitHub仓库(可选):记住,你本地计算机不会自动更新你的GitHub仓库。所以,唯一更新GitHub仓库的办法就是将那些修改推送上去。你可以在步骤2完成后立即执行push,也可以等到你做了自己的一些修改,并已经本地提交后再执行推送操作。
比较一下fork和同步工作流程的区别:当你最初fork一个仓库的时候,信息的流向是从Joe的仓库到你的仓库,然后再到你本地计算机。但是最初的过程之后,信息的流向是从Joe的仓库到你的本地计算机,之后再到你的仓库。
我希望这是一篇关于GitHub和Git 的 有用概述。现在,你已经理解了那些概念,你将会更容易地在实际中执行你的代码。GitHub关于fork和的文章将会给你大部分你需要的代码。
如果你是Git的初学者,而且你很喜欢这种学习方式,那么我极力推荐书籍的前两个章节,网上是可以免费查阅的。
如果你喜欢视频学习,我创建了一个(总共36分钟),来向初学者介绍Git和GitHub。
作者: 译者: 校对:
原创翻译, 荣誉推出
上一篇:下一篇:
来自法国的 Chromium 48.0|Ubuntu 用户 发表于
18:59 的评论:
你使我的一天
{{MmVhZGFkMmQ2NGM2YzYwNTA0NjVlNjY1NjVjNWU2MDUyNDA1ZTYwNTA0YzVjNmVlOGY0ZDZmMmU2ZGM2Y2YyZTRkZWVhZTRkZTYyZDJlMmQyMw==}}
-Sent from Iphone
@我的印象笔记
来自法国的 Chromium 48.0|Ubuntu 用户
你使我的一天
{{MmVhZGFkMmQ2NGM2YzYwNTA0NjVlNjY1NjVjNWU2MDUyNDA1ZTYwNTA0YzVjNmVlOGY0ZDZmMmU2ZGM2Y2YyZTRkZWVhZTRkZTYyZDJlMmQyMw==}}
-Sent from Iphone
来自广东广州的 Chrome 45.0|Windows 7 用户
受教了,刚看完pro git,再加上这个,概念清晰多了
分享到微信朋友圈
打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&求解一个小白的Git提问,关于Clone Pull下载远端代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
Sponsored by
国内领先的实时后端云野狗 API 可用于开发即时聊天、网络游戏、实时定位等实时场景传输快!响应快!入门快!
Promoted by
求解一个小白的Git提问,关于Clone Pull下载远端代码
16:57:10 +08:00 · 2861 次点击
初学Git 用Github出现一些问题我在Linux本地创建了一个文件夹,想用从Github上面下载现有(朋友做的Project)代码下来我用git remote add origin :Name/Name.git然后用Git pull提示错误用git clone :Name/Name.git也提示错误这两个是什么问题呢??哪里配置还是操作有问题了??另外 pull clone 和 fetch有什么区别呢??谁能给解答下?
7 回复 &| &直到
08:00:00 +08:00
& & 17:04:51 +08:00
提示了什么错误
& & 17:17:42 +08:00
:Name/Name.git采用的协议是SSH,你有Name的私钥么?
clone = init + remote-add + pull = init + remote-add + fetch + checkout
& & 17:18:13 +08:00
额,pull 时候的错误大概是本地有没提交(commit)的内容,git不敢直接用远端合并; 因为只能合并提交后的记录;建议你可以尝试用git stash 临时存档并清理现场状态,然后pull合并,最后用git stash pop来恢复刚才的进度
clone一般都不会出错啊
关键顺着错误提示google一下
& & 17:26:39 +08:00
两种方法。1.注册一个github账号,加入自己的ssh客户端证书。2.改用https协议。
& & 18:52:45 +08:00
1. 先使用https协议吧。git clone
3. change some files.
2. git commit -a -m 'test commit'
3. git push origin master
4. 输入用户名密码(需要有github账户)
区别:
clone: 克隆一份代码。
fetch: 从远端拉取最新代码, 比如你在本地clone了一份代码,后面有人提交一些修改,你想同步这些修改。
pull: 跟fetch差不多,但可以指定拉取某一个分支。
参照:
& & 19:18:08 +08:00
注册一个 github 帐号,然后 fork 你同学的 rep,在 github account 里添加自己的 SHA 密钥 isa_pub 那里面的那个。
& & 19:34:13 +08:00
pull 基于等于 fetch + merge, clone是拉整个repository,又视是否需要bare而定是否会checkout
& · & 1091 人在线 & 最高记录 1847 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.3 · 43ms · UTC 15:42 · PVG 23:42 · LAX 08:42 · JFK 11:42? Do have faith in what you're doing.2791人阅读
昨晚就发现bitbucket抽风,push很慢,根本无法pull,今天早上来验证,才发现被墙了。还有很多项目托管在上面,于是寻找google解决。解决办法如下:
配置git pull和push都走https协议,不要走git或者ssh协议;
git config --add http.proxy 127.0.0.1:8087
git config --add https.proxy 127.0.0.1:8087
git config --add https.sslVerify false
8087为本地的goagent端口,sslVerify最好配置为false,否则会出现证书问题。
上面的操作也可以换成直接修改.git/config文件,添加如下代码:
proxy = http://127.0.0.1:8087
sslVerify = false
proxy = http://127.0.0.1:8087
sslVerify = false
然后就可以正常使用了.
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:53374次
排名:千里之外
原创:13篇
(2)(1)(1)(1)(1)(2)(7)}

我要回帖

更多关于 git clone fetch pull 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信