我对Git很新,我做了以下事情:
使用
从master创建一个新分支git checkout -b vijayv
然后,我对我的代码进行了更改,现在使用
进行了相同的修改git commit -a -m "UI Changes"
嗯,代码更改耗时太长,以至于master分支中的内容可能已被其他人更改。
现在我需要同步/合并master
中的最新内容并推送我的更改,以便每个人都可以使用它。
那么有谁可以告诉我从现在开始要采取哪些步骤呢?
答案 0 :(得分:1)
我建议在推送之前在(最新的)主人身上重新设置分支:
git checkout vijayv
git fetch --all
git rebase origin/master
git push --force
假设您正在处理其他人更新主人的同一个仓库。
如果不是这种情况,并且您正在使用分支,那么您的git remote -v
引用原始仓库(例如,命名为“上游”):
git rebase upstream/master
git push --force
# make a pull request
答案 1 :(得分:0)
输入git状态并查看它告诉您的内容。它要么告诉你,你的本地版本是先行的,你需要先推送它,或者你的在线存储库已经提前,你需要首先提取最新的更改。
您可能希望切换到主分支并首先提取最新更改
git checkout master
git pull origin master
现在您已拥有最新版本的主分支,您可以通过
将子分支合并到它 git merge vijayv
就是这样。 记得再次推送本地更改;)
答案 2 :(得分:0)
我通常的工作流程是
# Work on your branch, committing as you go...
git checkout -b vijayv
# When you're done, get the latest commits from the remote in case other people
# have updated stuff while you're working
git fetch origin
# Optional: compare your stuff to the new tip of master
git diff origin/master
# Interactively rebase - i.e. move your commits in the vijayv branch so that it
# is as if you created your branch off the tip of origin/master. You may have to
# resolve merge differences at this step.
git rebase -i origin/master
# Switch back to the master branch
git checkout master
# Get the latest changes from other people into your workspace.
git pull
# Merge your branch in. Because you did a rebase above, this will be a
# "fast-forward" merge.
git merge vijayv
# Delete your branch (assuming you never pushed it). We don't need it any more.
git branch -d vijayv
# Push your changes up to the remote
git push
我看到这被描述为“功能分支/ rebase”工作流程。它具有在repo中保持良好线性历史的优势,“rebase -i”步骤使您有机会压缩提交,换句话说,在发布之前清理提交。 (有机会隐藏那些令人尴尬的“修复错误修复”提交:-)你可以在这里阅读git-rebase http://git-scm.com/docs/git-rebase
这可能看起来像很多步骤,但在实践中它真的很快,做一个有效的变形会让你看起来像一个git大师: - )