Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使git分支保持最新的推荐工作流_Git_Github_Version Control - Fatal编程技术网

使git分支保持最新的推荐工作流

使git分支保持最新的推荐工作流,git,github,version-control,Git,Github,Version Control,我有两个目标,我需要一个工作流程来实现它们,同时使用我的功能(master是一个企业github repo) 目标: 随时更新我的分支机构 能够看到我使用git diff和git show所做的更改 我是github的新手,但我尝试了几个场景来实现这一点,它们对我没有帮助 最初,我创建一个新分支(跟踪原始/主分支)并更改代码 我提交更改并使用git push origin将此更改发布到github 然后我创建一个公关,让人们评论 我得到了很好的反馈,在第一次提交的基础上进行了代码更改和提交

我有两个目标,我需要一个工作流程来实现它们,同时使用我的功能(master是一个企业github repo)

目标:

  • 随时更新我的分支机构

  • 能够看到我使用
    git diff
    git show所做的更改

我是github的新手,但我尝试了几个场景来实现这一点,它们对我没有帮助

最初,我创建一个新分支(跟踪原始/主分支)并更改代码

我提交更改并使用
git push origin
将此更改发布到github

然后我创建一个公关,让人们评论

我得到了很好的反馈,在第一次提交的基础上进行了代码更改和提交

如何使我的分支与源/主分支保持同步

我试着通过
git pull
合并来更新我的本地分支。一切正常,但现在如果我做了
git show
我将看不到我的更改,我将看到最新的主提交

我尝试通过git pull--rebase
重新定基来更新我的本地分支。我可以使用
git show
查看我的更改,但是我的本地和远程分支不同步,我必须使用
git push origin-f
用第二次更改更新我的github PR


我愿意听取建议,谢谢

你所做的是正确的方法。
pull
pull--rebase
之间有很大的区别。它将执行git fetch和git merge origin/master操作<代码>git获取和&git重新设置基源代码/主代码。这两种方法都是正确的。区别在于树的历史记录,在大多数情况下,公司的政策是使用什么

使用rebase,您将始终更改历史,并且需要强制推送。使用“合并”,您不会更改历史记录,但最后一次提交是合并

不要期望只有一个提交将被推送,因此差异不应该只针对一个提交,而是针对整个分支。如果您只需要查看差异,可以运行:

git show HEAD~1
或 git show HEAD~4..HEAD~1

查看最后几次提交中除最后一次(合并)之外的所有更改

或者你可以试试这样的

git diff --boundary HEAD~1..origin/master
注:当更多的人在同一个分支上工作时,重设基础和强制推送可能非常危险。仅当您确定自己是唯一在分支上工作的人时,才强制推送


评论也可能有一些问题。不确定Github是如何实现的,但Gitlab不会在强制推送后显示完全更改或删除的行的注释。

您提到的所有内容听起来都是正确的。如果您唯一的问题是如何查看文件从一个提交到另一个提交的差异,我是否可以建议您为您的IDE获得一个Git插件?例如,IntelliJ可以很好地让您将文件与同一分支中的任何提交进行区分,甚至与其他分支进行区分。比命令行好得多。答案有助于解决问题吗?如果是,您可以将其标记为答案。它将帮助其他有类似问题的人。