• git远程仓库

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ git remote #列出远程仓库的名字 -v 显示仓库地址

    $ git remote add origin <URL> #添加地址URL的仓库命名为origin

    $ git branch -r #查看远程分支

    $ git remote show origin # 查看远程库的一些信息

    $ git remote prune origin #删除远程失效的分支
  • git提交

    1
    2
    3
    4
    5
    6
    7
    $ 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分支
      1
      2
      3
      4
      5
      $ 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分支
    • 查看分支
      1
      2
      3
      4
      5
      $ git branch #查看本地分支
      $ git branch -a #查看本地和远程分支
      $ git remote show origin # 对比origin分支与本地信息
      $ git remote prune origin # 删除远程不存在的本地分支

    • 更新远程分支信息
      1
      2
      3
      $ git push origin dev # 推送本地dev分支到远程origin仓库
      $ git fetch -p #更新远程仓库信息,删除已被删除的远程分支

    • 删除分支
      1
      2
      3
      4
      5
      6
      7
      # 删除本地分支
      $ git branch -d dev #删除dev分支
      $ git branch -D dev #强制删除

      # 远删除程分支
      $ git push origin --delete <branchName> # 方式一
      $ git push origin :<branchName> # 方式二:推送空分支到远程分支
    • 合并dev分支到master分支
      1
      2
      3
      4
      $ git checkout master #切换到master分支
      $ git merge --no-ff -m "merge test" dev #合并dev分支
      # --no-ff 表示禁用Fast forward
      Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
    • cherry-pick 将指定的commit应用到当前分支

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

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

1
git clone XXX --depth=1

让git后台下载

1
git fetch --unshallow
  • 误删恢复

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

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

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