Mar*_*air 219
git pull
实际上相当于运行git fetch
然后git merge
.在git fetch
更新你的所谓的"远程跟踪分支" -通常这些都是那些看起来像origin/master
,github/experiment
等你有看到git branch -r
.这些类似于远程存储库中分支状态的缓存,当您执行git fetch
(或成功git push
)时会更新.
所以,假设你有一个叫做origin
GitHub存储库的远程调用,你可以这样做:
git fetch origin
Run Code Online (Sandbox Code Playgroud)
......然后做:
git diff master origin/master
Run Code Online (Sandbox Code Playgroud)
...为了看到你master
和GitHub上的那个之间的区别.如果您对这些差异感到满意,可以将它们合并git merge origin/master
,假设master
是您当前的分支.
就个人而言,我认为这样做git fetch
并git merge
分别通常是一个好主意.
bra*_*sch 37
如果您对git diff
输出的详细信息不感兴趣,您可以直接运行git cherry
,这将输出您的远程跟踪分支在您的本地分支之前提交的提交列表.
例如:
git fetch origin
git cherry master origin/master
Run Code Online (Sandbox Code Playgroud)
将输出如下:
+ 2642039b1a4c4d4345a0d02f79ccc3690e19d9b1
+ a4870f9fbde61d2d657e97b72b61f46d1fd265a9
Run Code Online (Sandbox Code Playgroud)
表示我的远程跟踪分支中有两个提交尚未合并到我的本地分支中.
这也适用于另一种方式:
git cherry origin/master master
Run Code Online (Sandbox Code Playgroud)
将显示您尚未推送到远程存储库的本地提交列表.
另一个有用的命令(在git fetch之后)是:
git log origin/master ^master
Run Code Online (Sandbox Code Playgroud)
这显示了origin/master中的提交但不是master中的提交.在执行git pull时,您也可以在对面执行此操作,以检查将提交给远程的提交.
归档时间: |
|
查看次数: |
115441 次 |
最近记录: |