我知道如何检查本地的变化:
在提交之前获取更改:
git diff master
提交后更改 &&推送前 :
git diff origin/master
or
git diff remotes/origin/master
我想要的是:
并且,我知道如何通过以下步骤在远程服务器中进行更改:
git remote foo git@github.com:user/foo.git
git fetch foo
git diff master foo/master
但是,我想使用一个命令来检查远程服务器中的更改,例如:
git rdiff master
or something else
可以通过一条评论来获取远程服务器的更改吗?感谢。
顺便说一句,我发现在本地仓库中有一个来源 抓取,如何在不再获取它的情况下使用它?
$ git remote -v
origin git@github.com:Marslo/VimConfig.git (fetch)
origin git@github.com:Marslo/VimConfig.git (push)
答案 0 :(得分:1)
首先,这有一个逻辑上的问题:
git rdiff master
你要比较哪个遥控器?所以在列表中,它应该是这样的:
git rdiff remote_name branch_name
应扩展为:
git fetch remote_name && git diff remote_name/branch_name
您可以准确创建该别名(例如〜/ .gitconfig中):
[alias]
rdiff = "!sh -c 'git fetch \"$0\" && git diff \"$0\"/\"$1\"'"
告诉shell使用给定的参数运行上面的命令。
其他一些说明:
git diff master
来代替git diff
,而master
会使用您所在的当前分支获取差异,但不一定是git diff master foo/master
。git diff foo/master
,而不是add
。因为你不重复两次大师,所以输入更容易。您不需要每次都更改遥控器。您可以在同一个存储库中拥有多个远程数据库。因此,您可以这样做(请注意,您错过了git remote add foo git@github.com:user/foo.git
):
origin
并永远保存在您的存储库中。现在,您仍然可以与foo
进行交互,# get updates from origin
git fetch origin
git merge origin/master
# check them against foo
git rdiff foo master
是克隆存储库时自动创建的远程数据库。同时,您还可以与您创建的另一个名为{{1}}的遥控器进行交互。所以在同一个存储库中,您可以这样做:
{{1}}
答案 1 :(得分:0)
感谢@Shahbaz。
rdiff 用于获取本地存储和远程服务器之间的差异,别名为:
rdiff = "!bash -c 'git fetch && git diff master remotes/origin/master'"
看起来像是
而且,我还提出了“ rlog ”和“ rlogs ”,它从远程服务器获取日志:
plog = log --max-count=3 --color --graph\n --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C( blue)<%an>%Creset'\n --abbrev-commit --date=relative
plogs = log --color --graph\n --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)<%an>%Cr eset'\n --abbrev-commit --date=relative
rlog = "!bash -c 'git fetch && git plog remotes/origin/master'"
rlogs = "!bash -c 'git fetch && git plogs remotes/origin/master'"
它将显示: