• git远程仓库

    $ git remote #列出远程仓库的名字 -v 显示仓库地址
    
    $ git remote add origin <URL> #添加地址URL的仓库命名为origin
    
    $ git branch -r #查看远程分支
    
    $ git remote show origin # 查看远程库的一些信息
    
    $ git remote prune origin  #删除远程失效的分支
    
  • git提交

    $ git add a.txt # 添加a.txt
    $ git add .     # 添加所有文件
    $ git commit -m "提交记录"  # 提交记录
    $ git push origin master    # 推送
    
    $ git commit -am ""     # git add 和git commit可以合并成以下一条命令
    

    –amend 参数

    commit之后,如果需要对commit修改,可以用 git commit -amend 进行修改,并且上一个commit会撤销。

  • git分支操作

    • 创建dev分支
      $ git branch dev #创建dev分支
      $ git checkout dev #切换到dev分支
      #可以合并成以下一条命令
      $ git checkout -b dev #创建并切换到dev分支
      $ git checkout -b dev_new origin/dev_new #从远程分支拉取dev_new到本地dev_new分支
      
    • 查看分支
      $ git branch #查看本地分支
      $ git branch -a #查看本地和远程分支
      $ git remote show origin # 对比origin分支与本地信息
      $ git remote prune origin # 删除远程不存在的本地分支
      
    • 更新远程分支信息
      $ git push origin dev # 推送本地dev分支到远程origin仓库
      $ git fetch -p #更新远程仓库信息,删除已被删除的远程分支
      
    • 删除分支
      # 删除本地分支
      $ git branch -d dev #删除dev分支
      $ git branch -D dev #强制删除
      
      # 远删除程分支
      $ git push origin --delete <branchName> # 方式一
      $ git push origin :<branchName> # 方式二:推送空分支到远程分支
      
    • 合并dev分支到master分支
      $ git checkout master #切换到master分支
      $ git merge --no-ff -m "merge test" dev #合并dev分支
      #  --no-ff 表示禁用Fast forward
      Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
      
    • cherry-pick 将指定的commit应用到当前分支

      $ git cherry-pick commitId # 将 commitId 应用到当前分支
      $ git cherry-pick id1 id2  # 将 id1, id2 应用到当前分支
      $ git cherry-pick id1..id3  # 将 id1到id3 的提交都应用到当前分支
      
      cherry-pick还有很多参数, 可以查看一下git文档
  • Git 标签

    • 列出标签
      $ git tag #列出标签(不添加信息)
      $ git tag -l 'v1.0.*' # 列出v1.0系列的标签
      
    • 新建标签
      $ git tag v2.0 #打一个简单的标签
      $ git tag -a v2.0.1 -m "详细标签" #打一个带注释的标签
      
    • 删除标签
      $ git tag -d 标签名 #删除本地标签
      $ git push origin :refs/tags/标签名  #删除远程标签
      
    • 显示标签详情
      $ git show v2.0 #相应标签的版本信息
      
    • 推送标签到远程仓库
      $ git push origin --tags #推送所有本地标签到远程仓库
      $ git push origin v2.0.0 #推送v2.0.0到远程仓库
      $ git push origin --delete tag <tagname> #删除远程Tag
      
  • git clone 加速

指定深度, –depth=1 表示只克隆最近的一次commit

git clone XXX --depth=1

让git后台下载

git fetch --unshallow
  • 误删恢复

git所有记录被删其实不是立即删除的, 可以理解为gc机制, 日志超过一定的数量才会真正删除

git reflog
  • 在Git Bash中进入vim编辑器之后退出问题

输入完成之后按Esc退出编辑模式,连续按两次大写Z就会退回到git界面了