我现在使用git已经有好几个星期了。我正在一个功能分支工作,有时当我将代码推入我的分支时,它显示了很多与开发分支的冲突。所以这次我遵循了以下步骤,以避免在工作场所发生不必要的冲突和问题:(
git branch abc
git checkout abc
现在这一步导致提交了2个文件,其中一个解决了冲突,另一个解决了我的工作。分别说File1和File2。
现在我需要重新推送我的代码,但只需要文件2,即我在其中没有解决冲突的问题,以及所有问题。
但是git status将不会显示任何内容,因为我已经完成了所有的提交和推送。 此外,在某些自动合并期间,必要的代码将从File1中删除。如何把它带回来?
任何帮助都会受到赞赏吗?
因为我还在学习GIT,所以任何解释都会对我和其他人有所帮助。
我正在使用BITBUCKET。
谢谢!
答案 0 :(得分:1)
对于#1& #2:它们可以合并 - git checkout -b abc
对于#4:你为什么藏匿?我相信你应该在这里做出改变。
对于#6:冲突在哪里?在新创建的功能分支上?这应该是不可能的。
典型的工作流程如下:
git checkout master
git fetch
git rebase origin/master
git checkout -b featureBranch
git add .
#这只是一个例子;有选择地添加,适当的git commit
git push origin featureBranch
git checkout featureBranch
git fetch
git rebase origin/master
git checkout master
git rebase origin/master
git merge --no-fast-forward featureBranch
此工作流程,在合并&之前通过重新定位 featureBranch 使用非快进合并,将导致 master 的线性但描述的历史记录。
祝你好运!答案 1 :(得分:1)
为了扩展之前的答案,我想补充一点:Git stash会将你的更改保存在" pocket"如果他们还没准备好提交。但是您的更改已准备就绪,因此没有必要。
关于您之前评论中的问题(我没有足够的声誉在评论中回答您):git pull更新您的本地存储库和您的工作目录以及远程存储库中的更改,是git fetch后跟的快捷方式git merge。但是,由于git merge对历史有一些缺点,因此使用git fetch + git rebase会很有用。
Git rebase在本地工作,所以它可以以同源的方式用于git merge,但不是git pull!。很多答案会比我更好地解释git rebase,我希望能有所帮助。