只梳理在终端常输入的命令,复杂命令一般用 SourceTree 操作。

本文中的 remote 一般默认就是 origin,可相互替代。

Git 仓库管理

创建 Git 仓库

仓库的创建有两种方法,一可以在本地新建,二直接复制远程的仓库到本地。

  1. #本地初始化一个仓库
  2. git init
  3. #克隆远程仓库 并重命名仓库名(可选)
  4. git clone [url] [dir_name]
  5. #克隆远程仓库 指定分支
  6. git clone -b <branch> <url> <dir_name>

本地仓库与远程仓库关联

  1. #本地仓库与远程仓库关联
  2. git remote add origin <url>
  3. #重新设置远程仓库
  4. git remote set-url origin <url>

分支命令

创建分支

  1. #创建分支
  2. git branch branchName
  3. #切换分支
  4. git checkout branchName
  5. #创建并切换分支
  6. git checkout -b branchName

创建追踪远程的分支

追踪远程的分支 表示跟远程的分支进行关联,可以直接通过 git pull & git push 管理。

  1. #创建追踪远程的分支
  2. #追踪分支更新执行 git pull ,git push 即可
  3. git checkout -t|[--track] <remote>/<tracked branch> ##创建的分支名跟远程分支相同
  4. git checkout --track -b <local branch> <remote>/<tracked branch>
  5. git checkout -b branchName <remote>/<tracked branch>
  6. eg: git checkout --track -b dev_20170331 origin/dev_20170331

从 Tag 创建分支

  1. # 从指定的 Tag 创建分支
  2. git checkout tagName -b branchName

追踪分支

  1. #跟踪远程分支 -u 或 --set-upstream-to
  2. git branch -u <remote>/<branchName>
  3. git push -u <remote>/<branchName>

删除分支

  1. # 从指定的 Tag 创建分支
  2. git checkout tagName -b branchName

更新/合并分支

  1. #合并分支
  2. git merge branchName
  3. #拉取远程分支
  4. git pull remote branchName
  5. #推送到远程分支
  6. git push remote branchName
  7. #更新
  8. git fetch

代码提交

  1. #to stage to include/update what will be committed
  2. git add [file]|[dir]|[.]
  3. #to unstage
  4. git rm --cached [-r] <file>
  5. #提交更新
  6. git commit -m msg
  7. #add 并 commit
  8. git commit -a -m msg
  9. git commit -am msg
  10. #替换上次提交记录 --amend
  11. git commit -m msg --amend
  12. #恢复到工作区 discard changes in working directory
  13. git checkout -- <file>
  14. #恢复 HEAD
  15. git reset --hard HEAD

标签

  1. #删除本地标签
  2. git tag -d tagName
  3. #删除远程标签
  4. git push origin :refs/tags/tagName

Git 配置

  1. #设置大小写敏感
  2. git config --global core.ignorecase false
  3. #设置显示中文文件名
  4. git config --global core.quotepath false
  5. #查看配置
  6. git config --list

别名配置

配置 Git 别名可以简化命令,提高效率。

可以打开 gitconfig 配置,然后在 alias 处修改 (推荐)。

  1. open ~/.gitconfig
  2. lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
  3. co = checkout
  4. br = branch
  5. ci = commit
  6. st = status
  7. unstage = reset HEAD --
  8. last = log -1 HEAD
  9. #查看贡献
  10. rank = shortlog -sn --no-merges
  11. cob = checkout -b

也可以敲命令配置,作用相同。

  1. git config --global alias.co checkout
  2. git config --global alias.br branch
  3. git config --global alias.ci commit
  4. git config --global alias.st status

常用操作

移除 .idea 文件夹

有时候一不小心把 .idea 文件夹 push 到了远程,这时候再加 gitignore 已经没用了(已经跟踪了的文件,再无视,是没有效果的)。

  1. 执行 git rm -fr .idea
  2. 重新加载项目
  3. 在 .gitignore 里添加 /.idea 忽视 idea
  4. 再 gcam “rm idea” git push 到远程

这个方法也适用于其他的文件。

资料

ProGit