题
有哪些Git命令可以执行以下工作流程?
脚本
我从存储库克隆并做了一些我自己的提交到我的本地存储库.与此同时,我的同事们提交了远程存储库.现在,我想:
检查远程存储库中是否有来自其他人的新提交,即origin
?
假设自从我上一次拉动以来远程存储库上有3个新的提交,我想区分远程存储库的提交,即
HEAD~3
with HEAD~2
,HEAD~2
with
HEAD~1
和HEAD~1
with HEAD
.
在知道远程更改后,我想获得其他人的最新提交.
到目前为止我的发现
对于第2步:我知道插入符号的符号HEAD^
,HEAD^^
等和波浪符号HEAD~2
,HEAD~3
等等.
对于第3步:也就是说,我猜,只是一个git pull
.
Ala*_*avi 237
您可以git fetch origin
更新存储库中的远程分支以指向最新版本.对于遥控器的差异:
git diff origin/master
Run Code Online (Sandbox Code Playgroud)
是的,您也可以使用插入符号.
如果要接受远程更改:
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
Raj*_*uri 151
git remote update && git status
Run Code Online (Sandbox Code Playgroud)
发现这个对答案,以检查是否需要拉Git中
git remote update
让您的遥控器更新.然后你可以做以下几件事之一,例如:
git status -uno
会告诉你你正在跟踪的分支是在前面,后面还是分歧.如果没有说什么,本地和远程都是一样的.
git show-branch *master
将显示所有名称以master(例如master和origin/master)结尾的分支中的提交.如果你使用
-v
,git remote update
你可以看到哪些分支更新,所以你真的不需要任何进一步的命令.
小智 33
对"起源"进行综合观察的好方法是:
git remote show origin
Run Code Online (Sandbox Code Playgroud)
小智 18
我只是用
git remote update
git status
Run Code Online (Sandbox Code Playgroud)
然后,后者报告我当地背后有多少提交.(如果有的话)
然后
git pull origin master
Run Code Online (Sandbox Code Playgroud)
带我的本地最新:)
Ler*_*rve 11
一个潜在的解决方
感谢Alan Haggai Alavi的解决方案,我想出了以下潜在的工作流程:
步骤1:
git fetch origin
Run Code Online (Sandbox Code Playgroud)
第2步:
git checkout -b localTempOfOriginMaster origin/master
git difftool HEAD~3 HEAD~2
git difftool HEAD~2 HEAD~1
git difftool HEAD~1 HEAD~0
Run Code Online (Sandbox Code Playgroud)
第3步:
git checkout master
git branch -D localTempOfOriginMaster
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
小智 10
我经常的问题是相当"任何新的或回购改变",所以whatchanged来得心应手.在这里找到它.
git whatchanged origin/master -n 1
Run Code Online (Sandbox Code Playgroud)