git常用命令备忘

一.基础操作

0.基本概念

git持有三棵树

  • 工作目录持有实体文件
  • 暂存区,缓冲改动
  • Head 指向最后一次提交结果

1.初始化本地项目

git init

2.检出项目

git clone 

3.添加和提交

git add <单文件>
git add * 
git commit -m ""  # 添加注释并提交到HEAD

4.本地仓库与远端建立|删除联系

git remote add origin <远端仓库地址>
git remote rm origin

5.推送提交的改动到远程服务器

git push origin 

6.分支检出|删除

  • 检出
git checkout -b feature/test # 检出新分支并跳转
git checkout <切换分支>
  • 删除
git branch -d <分支> #需要切换到其他分支
git push origin --delete <远程分支名称>

7.拉去远程代码变更

git pull

8.合并分支

git merge 

9.查看分支差异

git diff  

10.创建标签

git tag <1.0.0|tag> 

11.查看提交历史

git log
git log --author=bob # 指定提交人
git log --pretty=oneline # 没个提交只占一行输出
git log --graph --oneline --decorate --all 
git log --name-status # 改变的文件
git log --help # help doc

12.后悔药

  • 使用Head区的代码,替换掉本地文件的改动
git checkout -- 
  • 将远程的代码拉取到本地,确认后手动合并
git fetch 
  • 放弃本地所有提交
git reset --hard origin/master
  • 撤回commit修改,但是代码不回滚
git reset --soft HEAD^ # HEAD^,HEAD~1 上次 , HEAD~2 两次
  • 回滚版本,代码回滚
git reset --hard HEAD^ #回退到上个版本
git reset --hard HEAD~3 #回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard  # 退到/进到 指定commit的sha码

git push origin HEAD --force # 由于本地HEAD版本低于master版本提交需要强制才能成功

13.ignore文件
在根目录下添加.gitignore文件

# 忽略*.o和*.a文件
 *.[oa]

# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b

# 忽略dbg文件和dbg目录
dbg

# 只忽略dbg目录,不忽略dbg文件
dbg/

# 只忽略dbg文件,不忽略dbg目录
dbg
!dbg/

# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内
/dbg

# 以'#'开始的行,被视为注释.
 * ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可
    * [ ^abc]:代表必须不是a,b,c中任一字符

二.git flow 工作流

1.初始化

git flow init
git flow init -f

2.特性|功能 feature - 可以有多个

  • 增加新特性- 基于develop分支创建一个feature/xxx
git flow feature start MYFEATURE
  • 完成新特性

合并 MYFEATURE 分支到 'develop'
删除这个新特性分支
切换回 'develop' 分支

git flow feature finish MYFEATURE
  • 发布新特性 -推送到远端
git flow feature publish MYFEATURE
  • 拉取功能分支
git flow feature pull origin MYFEATURE
git flow feature track MYFEATURE # 跟踪
  1. 发布版本基于develop生产环境的release - 只能有一个
  • 创建
git flow release start RELEASE [BASE]
  • 完成
    归并 release 分支到 'master' 分支
    用 release 分支名打 Tag
    归并 release 分支到 'develop'
    移除 release 分支
git flow release finish RELEASE [BASE]
  • 发布
git flow release publish RELEASE 
  • 签出
git flow release track RELEASE
  1. 紧急修复-hotfix-唯一
  • 创建补丁
git flow hotfix start VERSION [BASENAME] # [BASENAME]为finish release时填写的版本号
  • 完成
    当完成紧急修复分支,代码归并回 develop 和 master 分支。
    master 分支打上修正版本的 TAG。
git flow hotfix finish VERSION

你可能感兴趣的:(git常用命令备忘)