git分支的相关操作

一、Git本地创建新分支,并推送到远程

1.本地创建分支并切换分支

git checkout -b develop

2. 将develop分支推送到远程

git push origin develop:develop

3. 建立本地至上游(远程)分支的链接,这样代码才能提交到远程

git branch --set-upstream-to=orgin/develop

4.取消对develop分支的跟踪

(需要取消跟踪时才操作)

git branch --unset-upstream develop

5.查看本地分支

$ git branch
* br-2.1.2.2master

6.查看远程分支

$ git branch -rorigin/HEAD -> origin/masterorigin/feature/IOS_visualtrackorigin/feature/android_visualtrackorigin/master

7.查看所有分支

$ git branch -a
* br-2.1.2.2masterremotes/origin/HEAD -> origin/masterremotes/origin/br-2.1.2.1remotes/origin/br-2.1.2.2remotes/origin/br-2.1.3remotes/origin/master

8.切换远程分支

$ git branch -a
* masterremotes/origin/HEAD -> origin/masterremotes/origin/Releaseremotes/origin/master$ git checkout -b myRelease origin/Release
Branch myRelease set up to track remote branch Release from origin.
Switched to a new branch 'myRelease'

PS:作用是checkout远程的Release分支,在本地起名为myRelease分支,并切换到本地的myRelase分支

9.合并分支

合并前要先切回要并入的分支

以下表示要把issue1234分支合并入master分支

$: git checkout master
$: git merge issue1234
Merge made by recursive.README |    1 +1 files changed, 1 insertions(+), 0 deletions(-)

10.撤消上一次commit的内容(该操作会彻底回退到某个版本,本地的源码也会变为上一个版本的内容)

git reset --hard <commit-id>

以下表示要撤消“update build gradle configuration file”这一次的commit id,返回到"add battery settings ui"这一次的commit id,

xp.chen@YC-JG-YXKF-PC27 MINGW64 /f/ob ((c8303a9...))
$ git log
commit c8303a9e8db2bcf4edb7488e722a380f4e8858ec (HEAD)
Author: xp.chen <xp.chen@yuneec.com>
Date:   Sat Oct 28 09:28:51 2017 +0800update build gradle configuration fileChange-Id: I9ee532fd0d4698613698a64eb754fb98a8559e32commit 8d8e5ccf24cf6836ab780aa3860270c3876e825a
Author: xp.chen <xp.chen@yuneec.com>
Date:   Sat Oct 28 09:02:01 2017 +0800add battery settigns uiChange-Id: Ia907ee4e84f54c00a186d31378a7925a6adaba0exp.chen@YC-JG-YXKF-PC27 MINGW64 /f/ob ((c8303a9...))
$ git reset --hard 8d8e5ccf24cf6836ab780aa3860270c3876e825a
HEAD is now at 8d8e5cc add battery settigns uixp.chen@YC-JG-YXKF-PC27 MINGW64 /f/ob ((8d8e5cc...))
$ git log
commit 8d8e5ccf24cf6836ab780aa3860270c3876e825a (HEAD)
Author: xp.chen <xp.chen@yuneec.com>
Date:   Sat Oct 28 09:02:01 2017 +0800add battery settigns uiChange-Id: Ia907ee4e84f54c00a186d31378a7925a6adaba0e

11. git commit -m 注释换行

git commit -m 注释可以通过单引号来换行,比如:

$ git commit -m '
> 1.aaaaa
> 2.bbbb
> '
[master b25154b] 1.aaaaa 2.bbbb1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 ss.txt

通过git commit --amend 命令可以查看到刚刚的log信息为

1.aaaaa
2.bbbb

持续更新中...