在未推送提交时从 git 拉取
Pull from git while having unpushed commits
我有几个尚未推送的提交。但是存储库中有几个新的提交。我想提取新提交并推送我的提交,但我不确定执行此操作的正确方法是什么。
如果我按原样进行拉动,我认为它会尝试合并,但我不确定我的提交会变成什么样,请提出针对这种情况的解决方案。
尝试执行以下步骤:
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.
这里你有两个主要选择,你可以将远程分支合并到你的分支然后推送,或者你可以在远程上重新设置你的分支,然后快进远程分支。
选项 1:合并
git pull origin yourBranch # does a fetch, followed by a merge
git push origin yourBranch # push merged branch to remote
选项 2:变基
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
合并会将您的提交合并为单个合并提交,该合并提交将出现在远程分支中,而变基会按顺序在远程分支中保留您的提交。
在任何一种情况下,您都不会丢失已完成的工作,尽管如果您使用合并选项,您所做的部分(或全部)提交可能不会保留在远程分支中。
git pull --rebase
通常是在这里做的最有用的事情。实际上它将:
- 将您的存储库回滚到未推送更改之前
- 从上游拉取(这不需要合并,只是快进)
- 尝试重新应用在步骤 1 中回滚的更改。
如果没有冲突,那么这将在没有任何问题的情况下继续进行,并且您将处于一种可以干净地推送更改而无需任何合并的状态。如果存在冲突,您将必须在变基过程中解决它们——可能需要大量工作,具体取决于冲突的大小和未推送的提交数。
您需要以任何方式git拉。
然后解决合并(如果会的话),然后进行新的提交,然后才推送到存储库。
我有几个尚未推送的提交。但是存储库中有几个新的提交。我想提取新提交并推送我的提交,但我不确定执行此操作的正确方法是什么。 如果我按原样进行拉动,我认为它会尝试合并,但我不确定我的提交会变成什么样,请提出针对这种情况的解决方案。
尝试执行以下步骤:
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.
这里你有两个主要选择,你可以将远程分支合并到你的分支然后推送,或者你可以在远程上重新设置你的分支,然后快进远程分支。
选项 1:合并
git pull origin yourBranch # does a fetch, followed by a merge
git push origin yourBranch # push merged branch to remote
选项 2:变基
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
合并会将您的提交合并为单个合并提交,该合并提交将出现在远程分支中,而变基会按顺序在远程分支中保留您的提交。
在任何一种情况下,您都不会丢失已完成的工作,尽管如果您使用合并选项,您所做的部分(或全部)提交可能不会保留在远程分支中。
git pull --rebase
通常是在这里做的最有用的事情。实际上它将:
- 将您的存储库回滚到未推送更改之前
- 从上游拉取(这不需要合并,只是快进)
- 尝试重新应用在步骤 1 中回滚的更改。
如果没有冲突,那么这将在没有任何问题的情况下继续进行,并且您将处于一种可以干净地推送更改而无需任何合并的状态。如果存在冲突,您将必须在变基过程中解决它们——可能需要大量工作,具体取决于冲突的大小和未推送的提交数。
您需要以任何方式git拉。 然后解决合并(如果会的话),然后进行新的提交,然后才推送到存储库。