这可能吗?
基本上,有一个远程存储库,我只需要使用:
git pull
现在,我想在不接触任何东西的情况下预览一下这个拉力会改变什么(一个差异)。原因是我正在拉取的东西可能不是“好的”,我希望其他人在使我的存储库“脏”之前修复它。
这可能吗?
基本上,有一个远程存储库,我只需要使用:
git pull
现在,我想在不接触任何东西的情况下预览一下这个拉力会改变什么(一个差异)。原因是我正在拉取的东西可能不是“好的”,我希望其他人在使我的存储库“脏”之前修复它。
当前回答
您可以从远程回购中获取,查看差异,然后拉取或合并。
这是一个名为origin的远程回购和一个名为master的分支跟踪远程分支origin/master的示例:
git checkout master
git fetch
git diff origin/master
git pull --rebase origin master
其他回答
您可以从远程回购中获取,查看差异,然后拉取或合并。
这是一个名为origin的远程回购和一个名为master的分支跟踪远程分支origin/master的示例:
git checkout master
git fetch
git diff origin/master
git pull --rebase origin master
我可能迟到了,但这件事已经困扰我太久了。 根据我的经验,我更希望看到哪些更改正在等待,而不是更新我的工作副本并处理这些更改。
这是~/。gitconfig文件:
[alias]
diffpull = !git fetch && git diff HEAD..@{u}
它获取当前分支,然后在工作副本和这个获取的分支之间做一个差异。因此,您应该只看到git pull带来的更改。
我使用这两个命令,就可以看到要更改的文件。
首先执行git获取,它给出如下输出(输出的一部分): ... 72年f8433 . .C8af041 develop -> origin/develop ...
这个操作给了我们两个提交id,第一个是旧的,第二个是新的。
然后使用git diff比较这两个提交 Git差异72f8433..C8af041 | grep“diff—git”
这个命令将列出要更新的文件:
diff --git a/app/controller/xxxx.php b/app/controller/xxxx.php
diff --git a/app/view/yyyy.php b/app/view/yyyy.php
例如app/controller/xxxx.php和app/view/yyyy.php将被更新。
使用git diff比较两次提交会打印所有更新过的文件 更改了行,但是使用grep,它只搜索并获得行 从输出中包含diff——git。
我创建了一个自定义的git别名来为我做这件事:
alias.changes=!git log --name-status HEAD..
你可以这样做:
$git fetch
$git changes origin
这将为您提供一个在进行合并之前预览更改的好方法。
在其他地方克隆repo,并在真正的checkout和新的克隆上执行git log,看看是否得到了相同的东西。