远程仓库
“那我如何把本地修改的内容提交到远程仓库呢?毕竟我们是团队开发,我修改的代码不可能一直放在我的笔记本里吧?” 李靖现在的脑子里充满了十万个为什么,迫不及待得想全部搞清楚。
E哥说:“问得好,我们接下的目标是把本地的修改提交到github上。“
查看远程仓库
我们先先执行git remote -v
命令,查看一下github上远程仓库的情况。E哥在电脑上执行命令:
$ git remote -v
origin git@github.com:liyi-demo/egit.git (fetch)
origin git@github.com:liyi-demo/egit.git (push)
“上面命令表示,当前只有一台远程主机,叫做origin
,以及它的网址 git@github.com:liyi-demo/egit.git
。
“'origin'
是我们使用git clone
时,git默认给远程仓库起的名字。“ E哥扭头看着李靖,确认他听懂了,“git可以在克隆时制定其他的名字,不过大多数情况下我们都不会修改,保持用origin就好。“
“好的,明白了!“李靖回答到。同时在自己的电脑上也执行了相同的命令:
$ git remote -v
origin git@github.com:lijing/egit.git (fetch)
origin git@github.com:lijing/egit.git (push)
除了url不一样,返回结果和E哥的电脑一致。
从远程抓取数据
然后我们从远程仓库抓取数据到本地, 使用git fetch
命令。
$ git fetch origin
“这个命令会到远程仓库中拉取所有你本地仓库中还没有的数据。不过有一点, fetch 命令只是将远端的程序和文件拉到本地仓库,并不自动合并到当前工作分支,需要执行git merge
手工合并。这对于初学者来说非常麻烦,所以我们学习第二个指令, git pull
命令。” 说完E哥在命令行窗口上输入:
$ git pull origin
”Pull命令相当于执行了 git fetch
接着执行 git merge
命令。如果没有冲突的话,一次完成了两件事,比较方便。如果还有冲突,那就需要进行手工合并,这个我们一会儿再讲。“
推送数据到远程仓库
”获取了数据,接下来就是在本地进行代码编辑修改的工作了,接下来就是那如何把修改提交到远程仓库?“李靖追问道。
“是的,实现这个任务的命令很简单,使用 git push [remote-name]:[branch-name]
。如果要把本地的 master 分支推送到 origin 服务器上(再次说明下,克隆操作会自动使用默认的master作为本地仓库名 和 origin 作为远程仓库名),可以运行下面的命令:”
$ git push origin master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 240 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:liyi-demo/grit.git
0bd0c5f..58a2eb1 master -> master
这时我们回到浏览器的在github网页上,能看到刚才提交的信息: