在Git中进行本地更改后需要进一步的步骤

时间:2014-07-05 17:01:52

标签: git github

我对Git很新,我做了以下事情:

使用

从master创建一个新分支
git checkout -b vijayv

然后,我对我的代码进行了更改,现在使用

进行了相同的修改
git commit -a -m "UI Changes"

嗯,代码更改耗时太长,以至于master分支中的内容可能已被其他人更改。

现在我需要同步/合并master中的最新内容并推送我的更改,以便每个人都可以使用它。
那么有谁可以告诉我从现在开始要采取哪些步骤呢?

3 个答案:

答案 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大师: - )