git分支问题 查看、创建、关联、删除本地/远程分支

Git-查看远程分支、本地分支、创建分支

1. 查看本地分支

$ git branch
* br-2.1.2.2
  master

2. 查看远程分支

$ git branch -r
  origin/HEAD -> origin/master
  origin/feature/IOS_visualtrack
  origin/feature/android_visualtrack
  origin/master

3. 查看所有分支

复制代码
$ git branch -a
* br-2.1.2.2
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/br-2.1.2.1
  remotes/origin/br-2.1.2.2
  remotes/origin/br-2.1.3
  remotes/origin/master
复制代码

4. 本地创建新分支(new-branch为新分支名

复制代码
$ git checkout -b new-branch


查看一下现在的分支状态:
$ git branch
* new-branch
  master
  release

星号(*)表示当前所在分支。现在的状态是成功创建的新的分支并且已经切换到新分支上。
复制代码

5. 把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):

这里以 new-branch 为例

$ git push origin 本地分支名:远程分支名
$ git push origin new-branch:new-branch

使用git branch -a查看所有分支,会看到 remotes/origin/new-branch 这个远程分支,说明新建远程分支成功。

 6. 讲本地分支与远程关联

git branch --set-upstream-to=origin/remote_branch  your_branch
============================
=> remote_branch 远程分支名
=> your_branch 本地分支名
============================
eg:
git branch --set-upstream-to=origin/dev  dev
把本地dev分支和远程dev分支相关联。

  

7. 删除远程分支
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
$ git push origin :new-branch

或者
$ git push origin --delete new-branch

这两种方式都可以删除指定的远程分支

8. 删除本地分支

$ git branch -D new-branch

 

9. git commit -m 注释换行

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

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

 

10 github远程建了分支,本地看不到的问题 => $ git pull

 

原因:Git  branch -a 查看的是本地仓库的所有分支  远程新建的没有同步前 就是看不到 

解决:$git checkout master   //首先切到master分支

          $git pull //同步下master   或者 git fetch --all

         $git branch -a   //查看所有本地查库分支

然后你会发现本地仓库的分支是远程最新的所有分支了

11 git已经删除了远程分支,本地仍然能看到

  1. 使用 git branch -a 命令可以查看所有本地分支和远程分支,发现很多在远程仓库已经删除的分支在本地依然可以看到。
  2. 使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。

  3. 此时我们可以看到哪些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令:

    这样就能成功在本地删除远程不存在的分支。

 

 

12 撤回操作:

 

撤销 git add . 

 

git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.js 就是对某个文件进行撤销了

撤销 git commit -m '本次修改说明'

 

git reset --soft HEAD^

 

这样就成功的撤销了你的commit

注意,仅仅是撤回commit操作,您写的代码仍然保留。

 

 

说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

 

至于这几个参数:
--mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
 

--soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 
 
--hard
删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

 

 

顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend

此时会进入默认vim编辑器,修改注释完毕后保存就好了。

 

13 平时工作代码应该注意(分支过多的情况)

拉取代码应该:git pull origin you_branch_name

合并完成解决冲突后提交代码:git push origin you_branch_name

 

14 将本地项目推送到远端仓库  

=>  cd  youProject
=>  git init 
=>  $ git remote add origin gitUrl地址
=>$ git push -u origin master -f

    note:这里如果报错 根据提示在后边添加 -f
            首次提交需在 origin 前边添加 -u

15 TODO

 

posted @ 2019-09-26 00:09  yanye411325  阅读(3320)  评论(0编辑  收藏  举报