我想找出本地存储库中的文件与origin master
中的文件之间的差异。
我知道有git diff
。但是,我只想将它隔离到这一个特定的文件。
为简单起见,假设文件名为file1.txt
,它有一个本地文件路径= [local_path]
,在源文件中,它有一个文件路径= [remote-path]
。
我需要输入的Git命令是什么?
对于那些正在使用Eclipse的人,我发现你只需点击→与→分支比较,标记或参考→选择合适的版本,就可以了。
发布于 2014-01-14 05:23:52
要查看从远程文件到本地文件的差异,请执行以下操作:
git diff remotename/branchname:remote/path/file1.txt local/path/file1.txt
要查看另一个方向的差异,请执行以下操作:
git diff HEAD:local/path/file1.txt remotename/branchname:remote/path/file1.txt
基本上,您可以使用此表示法在任何位置比较任何两个文件:
git diff ref1:path/to/file1 ref2:path/to/file2
通常,ref1
和ref2
可以是分支名称、远程名称/分支名称、提交SHA等。
发布于 2018-08-02 03:39:08
要比较本地存储库和远程存储库,只需使用以下语法:
git diff @{upstream}
发布于 2017-11-03 01:24:02
为此,我编写了一个Bash脚本:
#set -x
branchname=`git branch | grep -F '*' | awk '{print $2}'`
echo $branchname
git fetch origin ${branchname}
for file in `git status | awk '{if ($1 == "modified:") print $2;}'`
do
echo "PLEASE CHECK OUT GIT DIFF FOR "$file
git difftool FETCH_HEAD $file ;
done
在上面的脚本中,我将远程主分支(不一定是它的主分支- any分支)获取到FETCH_HEAD
,只列出我修改过的文件,并将修改后的文件与git difftool
进行比较。
Git支持的difftool
有很多,我配置了Meld Diff Viewer来比较好的图形用户界面。
从上面的脚本中,我预先知道了在遵循Git stages untracked→stages→commit之前,同一文件中的其他团队所做的更改,这有助于我避免不必要的解决与远程团队的合并冲突,或者创建一个新的本地分支,并在主分支上进行比较和合并。
https://stackoverflow.com/questions/21101572
复制相似问题