推送后,我在远程存储库中看到了这条消息:
1 次提交在 master 后面。
此合并存在必须在提交之前解决的冲突。
要将这些更改手动合并到 TA20footerLast 中,请运行以下命令:
git checkout 7c891f50c557
注意:这将创建一个分离的头部!
git merge remotes/origin/master
推送后,我在远程存储库中看到了这条消息:
1 次提交在 master 后面。
此合并存在必须在提交之前解决的冲突。
要将这些更改手动合并到 TA20footerLast 中,请运行以下命令:
git checkout 7c891f50c557
注意:这将创建一个分离的头部!
git merge remotes/origin/master
在开始之前,如果您对命令行不满意,可以使用SourceTree、GitExtensions、GitHub Desktop或您喜欢的工具执行以下所有步骤。
要解决此问题,您可能有两种情况:
示例:两个分支都在远程端
前面 === 主分支
后面 === 开发分支
解决方案:
将存储库克隆到本地工作区:这将为您提供 Master 分支,该分支在提交之前
git clone repositoryUrl
使用 Develop 名称创建一个分支并在本地结帐到该分支
git checkout -b DevelopBranchName // this command creates and checkout the branch
从远程开发分支中拉取。可能会发生冲突。如果是这样,请修复冲突并提交更改。
git pull origin DevelopBranchName
将本地 Develop 分支与远程 Develop 分支合并
git merge origin develop
将合并后的分支推送到远程开发分支
git push origin develop
这意味着每个本地创建的分支都落后了。
在此之前,您必须提交或存储您在提交后的分支上所做的所有更改。
解决方案:
查看您当地的 Master 分支
git checkout master
从远程 Master 分支拉取
git pull origin master
现在您的本地 Master 与远程分支同步。由于上述命令,从先前本地 Master 分支分支的其他本地分支不同步。要解决这个问题:
签出本地 Master 分支后面的分支
git checkout BranchNameBehindCommit
与本地 Master 分支合并
git merge master // Now your branch is in sync with the local Master branch
如果此分支位于远程存储库上,您必须推送您的更改。
git push origin branchBehindCommit
克隆你的叉子:
git clone git@github.com:YOUR-USERNAME/YOUR-FORKED-REPO.git
在您的分叉存储库中从原始存储库添加远程:
cd into/cloned/fork-repo
git remote add upstream git://github.com/ORIGINAL-DEV-USERNAME/REPO-YOU-FORKED-FROM.git
git fetch upstream
从原始 repo 更新你的 fork 以跟上他们的变化:
git pull upstream master
git push
如果您的分支在 master 后面,请执行以下操作:
git checkout master (you are switching your branch to master)
git pull
git checkout yourBranch (switch back to your branch)
git merge master
合并后,检查是否有冲突。
如果没有冲突,那么:
git push
如果存在冲突,则修复您的文件,然后:
git add yourFile(s)
git commit -m 'updating my branch'
git push
如果消息是“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
假设当前您在您的分支中,请myBranch
执行以下操作:-
git status
如果所有更改都已提交
git pull origin master
如果未提交更改
git add .
git commit -m"commit changes"
git pull origin master
检查是否有任何冲突,然后解决并提交更改
git add .
git commit -m"resolved conflicts message"
然后推
git push origin myBranch
查看您在 GitHub 中的存储库...
想象一下,main 或 master 是您的主要分支,并且您有另一个分支作为 dev,并且您的 dev 分支是 main 或 master 后面的 N 次提交,并且在您的本地计算机中没有任何事情。
如何进行...
首先,您必须从 Github 存储库克隆到您的机器,但是,首先,您的本地 git 不必知道您的辅助分支状态,只需要从主分支或主分支,因此 Git 只获取您的远程标签分支已更新,并且您的本地还没有提交。
所以,你需要的是至少 1 次提交,1 次推送到 main 或 master,1 次拉回本地。
不要为您的 dev 分支推送任何内容,否则您将提前 1 次提交,而在 main 或 master 之后有 N 次提交(因此,冲突)......
因此,您需要一个辅助分支来向远程主分支或主分支发送拉取请求。
无需再费周折。在这种情况下如何进行:
正在克隆存储库...
git checkout -b aux-branch
-> 它将创建并签出分支
现在,您必须至少进行一次更改才能在本地 Git 中记录第一次提交,假设您目前没有任何要实现的东西......拿 README.md 文件来更改一个字母、一个空格、空行更多...
git status
-> 你会看到你的 README 文件已被修改
git add README.md
-> 将其添加到暂存区域,准备好提交
git commit -m "modified readme file"
git push -u origin aux-branch
-> 它应该生成一个链接,该链接将引导你到你的存储库以打开并接受订购的拉取请求。
我使用 Rebase 和 Merge 接受它(下拉菜单中绿色按钮的最后一个选项),接受之后 GitHub 会询问您是否要删除 aux-branch ...是的,您想要,所以删除,因为您的 main 或 master现在有了 aux-branch 带来的最新功能。现在回到您的本地(Git),按照以下方式进行:
git checkout main
或 master
git branch -D aux-branch
-> 在您的本地也删除\
git remote update --prune
-> 它可以获取和更新到您的远程。
git pull
-> 接收来自远程 GHub 的最新更新。
git checkout dev
git rebase dev main
或 master -> (rebase or merge)
git push -u origin dev
-> 将更新爬升到远程分支
现在转到您的 GitHub 重新加载页面,下拉到您的开发分支,您会看到您的开发分支与您的主/主分支相同...
就是这样了。我希望我对你们有帮助...
如果消息说你在 master后面有 'n' 次提交,那么你可以在 tortoise git 中使用 'git sync' 选项。系统将提示您从要从中提取更改的分支(目标)中进行选择。点击“拉”。这会将所有更改从远程(主/任何目标分支)拉到您的开发分支中。拉取后,点击“推送”将所有同步的更改从本地开发分支推送到 git 上的远程开发分支。
#tortoisegit
利用
git cherry-pick <commit-hash>
因此,这将选择您对 git 位置的后面提交。
如果分支在 master 之后,则删除远程分支。然后转到本地分支并运行:
git pull origin master --rebase
然后,再次将分支推送到原点:
git push -u origin <branch-name>