git常用命令
第一家公司用的git,刚学会一些就换了第二家用的tfs,前段时间学姐换git给她写了点命令行用法,现在留给自己吧
Git 常用场景命令行组合
新拿到项目,复制代码到本地
git clone xxxx-url-xxxx
查看分支
Ps: 一般来说,请保持远程分支名和本地分支名相同,建立分支时步骤为 1.建立远程分支 2. 在本地建立相同的分支名 3.提交代码时直接本地分支push到远程分支
- 查看本地所有分支
git branch
- 查看远程所有的分支
git branch -r
- 本地新建一个分支 (命令完毕当前还是在原分支,不在newbranchName上)
Git branch xxx-newBranchName-xxx
- 切换分支
Git checkout xxx-newBranchName-xxx
- 3,4步骤合并 即新建分支&切换分支
Git checkout -b xxx-newBranchName-xxx
- 删除本地分支
Git branch -d xxx-branchName-xxx
分支提交代码
- 写完代码后, 查看改动过的代码文本
Git status
(红色的是改动了但是未准备提交的文件)
(绿色的是改动了且准备提交的文件)
- 添加到准备提交(就是准备区了)的代码文件
Git add . (这个是添加所有改动)
Git add filename (这个是添加指定的filename,此处的filename 路径可以从git status中复制)
- 去掉仓库区不要提交的代码文件(即本次不想提交的)
Git checkout filename (放心,这个命令不会清除你的改动)
旁外话:注意,有时候会看到Git status 有同一个文件名的,又有红色,又有绿色,绿色说明已经添加过一次到准备区,红色指的添加到仓库区后又有新的改动,此时如果需要用最新版本的,需要再次git add filename 或者全部 git add .
- 提交代码到本地的分支
Git commit -m “it’s a new commit”
- 查看完毕,仓库区(绿色的部分代码)是我要的全部提交,提交代码
Git push origin xxxbranchNamexxx (这一句将本地的该分支的改动提交到 远程同名分支, 所以建议同名分支比较方便)
- 提交完毕后 如果该分支有其他人一起干活的,拉一下代码到本地(这一步和push 前后顺序都ok,反正有冲突都得改,虽然其实建议先pull在push,本地改完再提交,免得影响其他人)
Git pull origin xxxbranchnamexxx
Git pull (默认的是当前分支)
Git分支图解
(一般来说是这样的, T 是合并分支, V是开分支,0是一次提交)
分支Master (用于发布)----------------0--------
V T
分支Develop(用于开发)---------------0--------0-----
V T T
工作分支 BranchA------------0---0--- 0---0---------
还有一个hotfix分支 一般是在线上出紧急问题,直接从master分支拉出来一条hotfix,直接合并回master发布。
实战训练
场景一(多需求分支切换):来了一个需求A, 创建了分支A
假设一开始在分支develop上
Git checkout -b BranchA (新建分支A,并在工作区工作)
工作到一半,来了个紧急的需求B
此时需要保存当前的工作进度到本地分支A
Git add .
Git commit -m “Work not finished”
此时如果直接新建分支B, 会把分支A工作到一半的东西带过去,但实际上我们不需要这部分工作到一半的东西,所以需要先切换到develop分支,再创建新分支
Git checkout develop
Git checkout -b BranchB
此时已经新建并切换到B,可以工作了
工作完毕需要提交到本地分支B
Git add .
Git commit -m “add to BranchB”
此时所有东西都保存了 就可以愉快的切换来切换去
Git checkout BranchA
如果需要提交到远程分支
Git push origin BranchA
Git push origin BranchB