前言
git指令有很多,除了常用的git clone、git init、git add、git commit、git push,一些其他的如分支、回退等指令用到的频率不高,所以整理了一份git指令笔记以备遗忘时查阅
笔记
git基本指令
git init 初始化一个git仓库git add a.txt  把a.txt 添加到stage(暂存)区    (不在暂存区的文件,git指令是不管的)
git add . 用来添加当前目录全部文件到暂存区
git commit -m '我的第一行代码' 把暂存区内容添加到提交区,-m 参数后面引号内容为注释(必须要有注释才能提交)
git status用来查看git仓库的状态 
git push 用来把本地仓库推到远程仓库
git push -f 用来强制推送到远程,把远程的提交全部覆盖掉
git pull 用于拉取远程仓库的新提交到本地仓库
拓展:git暂存区和工作区详解 git status详细参考说明
zsh安装oh my zsh插件后的简化指令
tab键用来补全,调出补全项和切换补全项
gss 或者 gst 查看目录状态
glog 查看提交日志( q 退出日志页面)
ga . 添加文件
gco 相当于git checkout
gc -m 相当于 git commit -m '注释'
git checkout
git checkout 的主要功能就是迁出一个分支的特定版本,默认是迁出分支的head版本。
git checkout master 迁出master分支的head版本。
git checkout testing 切换到testing分支上,通过向该命令传递一个-b参数,可实现创建并切换分支的功能
git checkout tag_name 在当前分支上,取出 tag_name 的版本
git checkout master file_name 放弃当前对文件file_name的修改
git checkout commit_id file_name 取文件file_name的 在commit_id时的版本,commit_id为 git commit 时的sha值。
git branch
git branch 列出本地分支,以*开头表示
git branch -r 列出远程仓库中的分支
git branch -a 列出远程与本地仓库的全部分支
  | 
  | 
上面命令表示,本地主机的当前分支是master,远程分支是origin/master。
git branch testing 创建名为testing的新分支
git merge hotfix 将hotfix分支合并到当前分支当中去
git branch -d testing 删除名为testing的本地分支,-d选项只能删除已经被当前分支所合并过的分支,而要强制删除没有被合并过的分支,可以使用-D
git branch -m oldbranch newbranch 重命名分支,-M用来强制重命名,如newbranch已经存在时
git clone
从远程主机克隆一个版本库,需要用到指令git clone
上述命令表示,克隆了jQuery的版本库
git remote
git会要求每个远程主机都要指定一个主机名,我们用git remote命令来管理主机名。 当指令后面不带选项的时候,git remote命令会列出所有远程主机。
  | 
  | 
git remote -v可以查看远程主机的网址
git clone克隆版本库的时候,所使用的远程主机会自动被git命名为origin,如果想用其他的主机名,需要用git clone命令的-o选项指定。
  | 
  | 
上面命令表示,克隆的时候,指定远程主机叫做<其他的主机名>。
git push
git push命令用于将本地分支的更新,推送到远程主机。
  | 
  | 
如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略。
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
git fetch
在远程主机的版本库有了更新(commit)时,需要将这些更新取回本地,这用到git fetch命令。
  | 
  | 
将某个远程主机的更新,全部取回本地
  | 
  | 
取回远程主机的某个特定分支的更新
取回origin主机的master分支
git pull
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
  | 
  | 
取回远程主机某个分支的更新,再与本地的某个分支合并
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
git也允许手动建立追踪关系
  | 
  | 
若当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名
上面命令表示,本地的当前分支自动与对应的origin主机”追踪分支”(remote-tracking branch)进行合并。
如果当前分支只有一个追踪分支,连远程主机名都可以省略。
上面命令表示,当前分支自动与唯一一个追踪分支进行合并。
忽略某个被追踪文件的修改
如果某些文件已经被跟踪了, 再添加到.gitinore时可能会失效, 可用以下命令来忽略:
  | 
  | 
撤销可使用指令:
  | 
  | 
后记
以上为收集整理的部分git指令,欢迎补充完善,如有遗误,还请指正。