我有几个提交尚未推送。但是在存储库中有几个新的提交。我想提取新的提交并推送我的提交,但我不确定这样做的正确方法是什么。 如果我按照我的想法进行合并,我认为它会尝试合并,而且我不确定我的提交内容是什么,请为这种情况提出解决方案。
答案 0 :(得分:5)
这里有两个主要选项,你可以将远程分支合并到你的分支然后推送,或者你可以在远程分支上重新分支你的分支,然后快进远程分支。
选项1:合并
git pull origin yourBranch # does a fetch, followed by a merge
git push origin yourBranch # push merged branch to remote
选项2:rebase
git pull --rebase origin yourBranch # does a fetch, followed by a rebase
git push origin yourBranch # ideally this will fast-forward the remote,
# meaning all your commits will be played on top
合并会将您的提交折叠为单个合并提交,该提交将出现在远程分支中,而rebasing将按顺序保留您在远程分支中的提交。
在任何一种情况下,您都不会失去已完成的工作,但如果使用合并选项,您所做的某些(或全部)提交可能不会保留在远程分支中。
答案 1 :(得分:4)
git pull --rebase
通常是最有用的事情。实际上它会:
如果没有冲突,那么这将在没有任何问题的情况下继续进行,并且您将处于可以干净地推送您的更改而无需任何合并的状态。如果存在冲突,则必须在rebase过程中解决它们 - 可能需要做很多工作,具体取决于冲突的大小和未提交的提交数量。
答案 2 :(得分:1)
您需要以任何方式执行 git pull 。 然后解决合并(如果是),然后进行新的提交,然后再推送到存储库。
答案 3 :(得分:-1)
尝试执行以下步骤:
Step1: git add .
Step2: git commit -m "message commit"
Step3: git pull
if you have some conflict, please merge code and return step 1.
Step 4: git push.