Skip to content

Instantly share code, notes, and snippets.

@upangka
Last active January 3, 2020 07:06
Show Gist options
  • Save upangka/2c0f1cc75e5f3e31a0fb441d708a0ad7 to your computer and use it in GitHub Desktop.
Save upangka/2c0f1cc75e5f3e31a0fb441d708a0ad7 to your computer and use it in GitHub Desktop.
远程分支切换

背景,本地的分支dev-2.7关联着远程的分支dev-v2.7。但是由于项目迭代需求,在远程从dev-v2.7分支拉取了一个新的分支dev-v2.8,新功能在dev-v2.8开发 旧功能维护和修改bug在dev-v2.7分支。

  1. 在本地创建新的分支
git branch dev-2.8
  1. 切换到分支dev-2.8
git checkout dev-2.8
  1. 将当前dev-2.8分支关联远程dev-v2.8分支
git branch --set-upstream-to=origin/dev-v2.8
  1. 查看我们本地的分支关联的远程分支
 git branch -vv

结果

D:\huice-git\java-mp (dev-2.8 -> origin/[email protected])
λ git branch -vv
* dev-2.8  6aa43483e [origin/dev-v2.8: ahead 1, behind 24] 保存当前工作 准备切换到2.8分支
  dev-v2.7 6aa43483e [origin/dev-v2.7: ahead 1, behind 14] 保存当前工作 准备切换到2.8分支

背景:

在本地local 分支dev2.7修复bug,将在本地local dev2.7分支上修复的bug,提交到线上remote dev-v2.7,测试人员在该分支remote上测试。 然后将本地dev2.7分支,合并到本地dev2.8分支,然后再从本地dev-2.8分支提交到线程dev-2.8分支

再将dev2.7合并到dev2.8之前,应该拉取dev2.8远程代码,保证是最新代码。

// 切换到dev-2.8分支
git branch dev-2.8
// 将dev-2.7分支合并到dev-2.8分支
git merge dev-2.7

注意: merge之后,不需要add ,commit因为dev-2.7的代码已经放到仓部中,合并时dev-2.7的代码也就进入了dev-2.8的仓库

git-merge-two-local-branches

背景,将适应自己本地环境的配置文件不小心commit,进行回退

  1. git log 查看本地commit 历史
  2. git reset --hard c57014728f35a2336269ebafe6e9ecc48a43a987 回退到到指定commit

参考

背景,github远程已经切换分支,从dev-v1.0 切换到了 dev-v2.0,需要在本地dev-v1.0切换到远程的dev-2.7,以便将代码提交到远程的dev-v2.7,而不是dev-v1.0

  1. 获取远程索引,分支(git branch -a 查看不到远程有dev-v2.7分支,所以需要执行该命令)

git fetch

  1. 查看远程分支

git branch -r (查看远程分支) git branch (查看本地分支) git branch -a (查看所有分支) Github 创建新分支

  1. 将本地已经修改的命令进行commit

    git add .

    git commit -m "something"

  2. 切换远程分支:

git branch --set-upstream-to=origin/dev-v2.7 dev-v1.0

下面两步不是必须的,只是为了让本地名称与远程分支名称相同

  1. 查看本地分支

git branch

  1. 将本地分支(dev-v1.0)修改为新名称 dev-v2.7:

git branch --set-upstream-to=origin/dev-v2.7 dev-v1.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment