Rom*_*riv 22 git github bitbucket branching-and-merging git-merge-conflict
推送后我一直在远程存储库中看到此消息:
1在master后面提交.
此合并具有必须在提交之前解决的冲突.
要手动将这些更改合并到TA20footerLast,请运行以下命令:
> git checkout 7c891f50c557
#注意:这将创建一个独立的头!
> git merge remotes/origin/master
ash*_*ash 31
我知道这是一个迟到的答案,但它可以帮助其他人.
在开始之前,如果您对命令行感到不舒服,可以使用SourceTree,GitExtension,GitHub Desktop或您喜欢的工具执行以下所有步骤.请按照以下步骤操作:
要解决此问题,您可能有两种方案:
1)仅修复提交后面的远程存储库分支
示例:两个分支都在远程端
一个头===主分公司
后面===开发分支
解:
i)将存储库克隆到本地工作区:这将为您提供Master分支,这是一个提交头
git clone repositoryUrl
Run Code Online (Sandbox Code Playgroud)
ii)在本地创建一个具有开发名称和结账的分支到该分支
git checkout -b DevelopBranchName // this command creates and checkout the branch
Run Code Online (Sandbox Code Playgroud)
iii)从远程开发分支拉出
git pull origin DevelopBranchName
Run Code Online (Sandbox Code Playgroud)
iv)将本地Develop分支与远程开发分支合并
git merge origin develop
Run Code Online (Sandbox Code Playgroud)
v)将合并的分支推送到远程Develop分支
git push origin develop
Run Code Online (Sandbox Code Playgroud)
2)本地主分支位于远程主分支之后
这意味着每个本地创建的分支都落后了.
在此之前,您必须提交或存储您在提交后面的分支上所做的所有更改.
解:
i)检查您当地的主分支机构
git checkout master
Run Code Online (Sandbox Code Playgroud)
ii)从远程主分支中拉出
git pull origin master
Run Code Online (Sandbox Code Playgroud)
现在,您的本地主服务器与远程分支同步,但由于上述命令,其他本地远程服务器与您的本地主服务器分支不同步.解决这个问题:
1)签出本地主分支后面的分支
git checkout BranchNameBehindCommit
Run Code Online (Sandbox Code Playgroud)
2)与当地的Master分支合并
git merge master // Now your branch is in sync with local Master branch
Run Code Online (Sandbox Code Playgroud)
如果此分支位于远程存储库上,则必须进行推送
git push origin branchBehindCommit
Run Code Online (Sandbox Code Playgroud)
小智 18
克隆你的叉子:
git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git在forked存储库中添加远程原始存储库:
cd into/cloned/fork-repogit remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.gitgit fetch upstream从原始仓库更新fork以跟上他们的更改:
git pull upstream mastergit pushAsh*_*ani 18
如果消息是“n commits behind master”。
您需要使用 master 重新设置 dev 分支。您收到上述消息是因为在从 master 签出 dev 分支后,master 分支获得了新的提交并继续前进。您需要将这些新提交提交到您的开发分支。
脚步:
git checkout master
git pull #this will update your local master
git checkout yourDevBranch
git rebase master
Run Code Online (Sandbox Code Playgroud)
假设当前您在分支机构中myBranch
执行以下操作:-
git status
Run Code Online (Sandbox Code Playgroud)
如果所有更改均已提交
git pull origin master
Run Code Online (Sandbox Code Playgroud)
如果没有提交更改
git add .
git commit -m"commit changes"
git pull origin master
Run Code Online (Sandbox Code Playgroud)
检查是否存在任何冲突,然后解决并提交更改
git add .
git commit -m"resolved conflicts message"
Run Code Online (Sandbox Code Playgroud)
然后推
git push origin myBranch
Run Code Online (Sandbox Code Playgroud)
如果您的分支落后于master,那么请执行以下操作:
git checkout master (you are switching your branch to master)
git pull
git checkout yourBranch (switch back to your branch)
git merge master
Run Code Online (Sandbox Code Playgroud)
合并后,检查是否存在冲突。
如果没有冲突,则:
git push
Run Code Online (Sandbox Code Playgroud)
如果存在冲突,请修复您的文件,然后:
git add yourFile(s)
git commit -m 'updating my branch'
git push
Run Code Online (Sandbox Code Playgroud)