如何查看自上次推送以来我对代码所做的所有更改?

时间:2017-11-30 14:56:53

标签: git

我想知道我对代码做了什么(我编辑了哪些文件,添加了哪些文件等等)。更详细地说,我想将我当前的本地存储库与远程存储库进行比较。但是,我不想看到其他人改变了什么。只想知道如果我推动将会有什么贡献。为了清楚起见,在编辑我的代码时,我已经拉了好几次,而且我也玩了#34;与当地分支机构合作。

3 个答案:

答案 0 :(得分:1)

git diff <commit>允许您将当前提交与另一次提交进行比较。提交可以是您的来源,也可以是本地。

因此,例如,如果我有一个开发分支和常规提交的混合历史并与远程主服务器合并,那么我可以使用:

git fetch # to get the most recent version of origin's state
git diff origin/master

查看我的本地开发分支与远程主服务器之间的差异。

请记住,每次提交都是回购的完整副本。 diff只是比较两个提交(完整副本)之间的差异,因此分支的历史并不重要。如果origin/master位于您的开发分支之前,则会反映在您的差异结果中,但如果您是最新的,那么diff将仅向您显示您所做的更改在当地制作。

答案 1 :(得分:0)

让我们说你在主分支上创建了两个文件src1.csrc.2和修改后的something.c

您没有提交所做的更改。为了查看自上次推送以来您所做的所有更改。使用`git status&#39;:这将为您提供树的工作状态。

我更喜欢git status -s:这里-s标志会以短格式提供输出。

你提到过你已经拉了几次。

  

我已经拉了几次而且我也玩过#34;与当地人   分支。

在此过程中,如果有人修改了您在其上工作的相同文件,那么您将获得合并冲突。您需要解决合并冲突。

保存更改的唯一方法是git commit - m "commit_message"。在git commit之后,您可以使用git diff来查看两次提交之间的区别。

查看先前提交(使用HEAD ^访问)和头部之间的差异的一种方法是

git diff HEAD^ HEAD

答案 2 :(得分:0)

git log master...origin/master --author="Your Username"将在提交方面显示主分支和远程主分支之间的区别,但仅限于提交是由您自己创作的。

您可以使用--patch开关查看已更新的代码行。

确保首先执行git fetch以确保您拥有有关远程分支的最新信息。