这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
在本次青训营大项目中,我们在本地编写好自己的代码后,需要与远程仓库同步更新,方便其他队员共同分享,下面是我记录的远程git操作。
1、git log
查看历史提交记录
2、git clone
在本地仓库下创建一个远程仓库的拷贝。
3、远程分支 origin/
远程分支反映了远程仓库(在你上次和它通信时)的状态。这会有助于你理解本地的工作与公共工作的差别—这是你与别人分享工作成果前至关重要的一步。 远程分支有一个特别的属性,在你检出时自动进入分离HEAD状态。Git这么做是出于不能直接在这些分支上进行操作的原因,你必须在别的地方完成你的工作,(更新了远程分支之后)再用远程分享你的工作成果。
4、git fetch
git fetch从远程仓库下载本地仓库中缺失的提交记录,然后更新远程分支指针。git fetch实际上将本地仓库中的远程分支更新成了远程仓库相应分支最新的状态。通常通过互联网(使用http://或git://协议)与远程仓库通信。
*git fetch并不会改变你本地仓库的状态,它不会更新你的本地分支,也不会修改你磁盘上的文件,可以将git fetch理解为单纯的下载操作。
5、git pull
git pull获取远程的数据,将这些变化合并到我们当前的分支中, 所以git pull就是git fetch和git merge的缩写
6、git push
git push负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录, 同时我们的远程分支也同样被更新了。
*git push的限制:假如远程仓库有团队成员的更新,而我们本地仓库的远程分支还是更新之前的,直接git push 会失败。需要先git pull,然后在git push.
为了简洁树形结构,亦可以使用git pull --rebase
7、git push origin
切换到本地仓库中的分支,获取所有的提交,再到远程仓库中找到分支,将远程仓库中没有的提交都添加上去。
8、git push origin :
将本地分支推送到远程分支。并且是可识别的位置,如果推送的目的分支不存在git会在远程仓库中自动创建这个分支。
9、git fetch参数
同样具有参数,只是方向相反,例如命令git fetch origin foo会到远程仓库foo分支上,获取本地不存在的提交,放到本地的o/foo上。如果 git fetch 没有参数,它会下载所有的提交记录到各个远程分支
*可以在 git push 或 git fetch 时不指定任何 source,方法就是仅保留冒号和 destination 部分,source 部分留空。
git push origin :foo 操作是删除远程分支 foo
git fetch origin :bar操作是创建本地分支bar
10、git pull 的参数
git pull origin foo 相当于git fetch origin foo; git merge o/foo
git pull origin bar1:bugFix相当于git fetch origin bar1:bugFix; git merge bugFix