git 创建分支

一、远程没有分支

1.本地新建一个文件夹Testbranch,初始化本地仓库:git init ;

2.与远程仓库建立连接:git remote add origin 仓库地址 ;

3.建立本地分支Testbranch(分支名):git branch Testbranch 。       或者 git checkout -b 分支名   (直接创建分支并切换到分支) ;

4.切换到新建分支Testbranch(分支名):git checkout Testbranch;

5.将需要提交的代码复制到Testbranch文件夹中,

6.git add ...;git commit -m "...";

7.提交到Testbranch 分支:git push origin Testbranch 。

二、远程有分支

1.新建文件夹,克隆分支代码到本地

git clone git@github.com:raymarine/smarthub.raywebui.git -b mobileui(分支名 )                                                                                                                                                                                                        

2.直接在拉下来的文件夹mobileui下改代码;

3.git add ...;git commit -m "...";

4.提交到mobileui分支:git push origin 分支名

日常修改代码提交:

1.git pull origin 主/分支名 (pull拉取最新代码并且自动融合本地代码,最好先看看本地有没有没提交的)或者 git fetch 主/分支名(fetch拉取最新代码并且不会自动融合本地代码);

2.修改代码,git status 查看修改哪些代码;

3.git add ...;git commit -m "...";

4.提交到主/分支:git push origin 分支名。

三、远程没有仓库

1.在github创建仓库,然后就会有主分支;

2.本地新建一个文件夹,初始化本地仓库:git init ;

3.与远程仓库建立连接:git remote add origin 仓库地址 ;

4.如果要将代码直接提交到主分支,则直接执行git add ...;git commit -m "...";git push origin master;

5.如果要新建分支,将代码提交到分支,则走一中的3,然后再往下走。

四、两个仓库之间进行切换

1.git remote -v show            (查看当前所在的远程仓库;)

2.git remote remove origin                   ( 移除当前远程仓库连接;)

3.git remote add origin 远程仓库地址                  (和另一个远程仓库建立连接)

4.git add ...;git commit -m "...";

5.git push origin 分支名

五、

先保证当前的已经同步了,如果没有同步请使用git add 同步一下,否则使用git rm -r --cached指令会无法通过。

1.git rm --cached 要忽略的文件 (如: git rm --cahced build/*, 如当前目录的内容全部是不需要的, 那么你可以使用最最简单的命令搞定git rm -r --cached .)

2.然后在 .gitignore 文件中加入该忽略的文件(如:*.o*.info)

3.git add .

4.git commit -m " commet for commit ....."

5.git push

六、项目有一个问题#66需要修改,创建一个处理#66问题的分支A,在#66修改代码并且有提交,现在还有修改没有提交。

突然来了一个紧急bug需要处理,于是需要创建一个#88的分支B,但分支A的代码还没测试不能提交,则可以通过git stash/git stash push贮藏修改分支,

等分支B紧急bug修改完毕后,回到分支Agit stash list 可以查看所有贮藏,git stash apply/git stash apply 贮藏名  进行恢复。

参考 https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

 七、回退到指定版本

  • git diff 什么参数都不加,默认比较工作区暂存区的差异
  • git diff 文件路径
  • git diff --cached [<path>...]比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
  • git diff HEAD [<path>...]比较工作区与最新本地版本库。如果HEAD指向的是master分支,那么HEAD还可以换成master

git reset ** fileName

  1.  
    1.git reset --mixed:此为默认方式,不带任何参数的git reset,这种方式,它回退到某个版本,只保留源码,回退commit和index信息
  2.  
    2.git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
  3.  
    3.git reset --hard 版本号   彻底回退到某个版本,本地的源码也会变成为上一个版本的内容


原文地址:https://www.cnblogs.com/yszblog/p/15481697.html