一 创建分支
1.本地分支
- 创建本地dev分支,然后切换到本地dev分支:
git checkout -b dev
- git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev
- 用git branch命令查看当前分支:
git branch
- 切换分支,如切换回master分支:
git checkout master
- git merge命令用于合并指定分支到当前分支,把dev分支的工作内容合并到master分支上:
git merge dev
- 删除dev分支:
git branch -d dev
PS:
- Fast-forward信息代表:“快进模式”,直接把master指向dev的当前提交,合并速度快。并非每次代码合并都能实现Fast-forward。
- 创建、合并和删除分支非常快,鼓励使用分支来完成某个短期任务,合并后再删掉,比起直接在master上工作过程更安全。
2.远程分支
- 删除远程分支:
git push origin --delete remoteBranch
- 查看远程分支:
git branch -r
- 查看所有分支,包括本地分支和拉取到的远程分支:
git branch -a
注:remote/origin/[name]表示的是远程分支
- 拉取远程分支并创建本地分支:
git checkout -b 本地分支名x origin/远程分支名x
- 基于本地分支创建同分支名的远程仓库:
git checkout -b test
git push origin test
二、clone 代码
- clone 项目全部代码:git clone 仓库地址
git clone https://github.com/XXX/XXXXX
- clone 项目指定分支代码:git clone -b clone的分支名 仓库地址
git clone -b dev https://github.com/XXX/XXXXX
三、操作代码
1.还原修改
清除本地更改
- 清楚所有更改:
git checkout . && git clean -xdf
- 清除某一个文件的更改:
git checkout file.name
2.缓存修改
拉取代码前一般都需要临时缓存一下修改的代码:
- 缓存修改的所有代码:
git stash
- 恢复缓存堆栈中默认的 stash 代码,并从缓存队列中删除该 stash:
// 命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash pop
// 或
git stash pop stash@{0}
- 恢复缓存堆栈中指定的 stash 代码,并从缓存队列中删除该 stash:git stash apply stash@{$num}:
// 应用并删除第二个 stash
git stash pop stash@{1}
- git stash apply :应用某个 stash,但不会把改 该 stash 从存储列表中删除,默认使用第一个存储,即stash@{0},如果要应用其他 stash,命令 git stash apply stash@{$num} , 如应用第二个 stash:git stash apply stash@{1}
git stash apply
git stash apply stash@{1}
- git stash list :查看stash了哪些存储;
- git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1};
- git stash clear :删除所有缓存的stash
3.保存修改
利用patch 生成修改差异化的文件,可以在想恢复修改的地方恢复,如自己的机器或其他人的机器:
- git 生成 patch:
git diff > file.patch
- patch 生成 patch:
patch -p1 < file.patch
- 应用 patch 的修改:
git apply file.patch
4.提交代码
- 提交指定文件:
git add a.java b.java
- 提交全部文件:
git commit -a
- 提交信息:
git commit -m "提交注释"
- push到服务器:
git push origin HEAD:refs/for/branch
如果感觉我的文章对您有所帮助,麻烦关注一下或动动小手给个喜欢,谢谢!!!