Git 一般有多个分支,Clone到本地的一般都是master分支,那么如何切换到其他分支呢?

主要命令如下:

克隆项目

git clone http://gitlab.gdXXX.cn:13XX/e.c.admin/ec.xxx.git

查看所有(远程)分支

git branch -a
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/python

查看本地分支

git branch
$ git branch
* master

设置/切换分支

git checkout -b python origin/python
git switch 分支
git checkout 分支 # 老版本
$ git checkout -b python origin/python
分支 'python' 设置为跟踪来自 'origin' 的远程分支 'python'。
切换到一个新分支 'python'

$ git branch
  master
* python

$ git switch master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。

$ git switch python
切换到分支 'python'
您的分支与上游分支 'origin/python' 一致。

# 或者
#$ git checkout python
# 切换到分支 'python'

Git冲突:commit your changes or stash them before you can merge.

1、stash

git stash
git pull
git stash pop

git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

2、放弃本地修改,直接覆盖之

git reset --hard
git pull