参考廖雪峰的Git的教程
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1.创建仓库
右键 > Git Bash here
-显示当前目录
$ pwd
-初始化,变成Git可管理的仓库
$ git init
2.添加到仓库
把文件放在仓库下,
$ git add readme.txt
可以多次add,最后
$ git commit -m "xxx"
xxx 本次提交说明
3.查看修改
-当前状态
$ git status
-查看不同
$ git diff xxx.txt
4.版本回退
-查看历史版本信息
$ git log
-只显示版本号
$ git log --pretty=oneline
-版本回退
HEAD表示当前版本
上一版本,
$ git reset --hard HEAD^
指定版本,
$ git reset --commit_id
-回到最新版本
查看历史操作指令
$ git reflog
-当前文件内容
$ cat xxx.txt
5.撤销修改
-修改工作区,未添加到暂存区(没有 add)
$ git checkout -- xxx.txt
-已添加到暂存区,未提交(没有commit)
$ git reset HEAD xxx.txt
$ git checkout -- xxx.txt
-已提交到仓库,未推送到远程库,直接版本回退
6.删除文件
-删除版本库中的文件
$ git rm xxx.txt
$ git commit -m "remove"
-从版本库中恢复误删文件
$ git checkout -- xxx.txt
7.创建GiHub远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com"
-在GitHub上新建 SSH key 将 id_rsa.pub 复制到 Key 输入框
8.添加远程库
-在 GitHub 上添加新仓库,Create repository
-关联仓库
$ git remote add origin git@github.com:wanderwuuu/git.git
-将本地仓库推送到 GitHub ,第一次推送时加上 u ,将本地所有分支与远程所有分支关联起来
$ git push -u origin master
-第一次 push 或 clone 时会出现 SSH 警告, 输入 yes 即可
9.从远程库克隆
$ git clone git@github.com:wanderwuuu/gitskills.git
10.创建与合并分支
查看分支:$ git branch
创建分支:$ git branch <name>
切换分支:$ git checkout <name>
创建+切换分支:$ git checkout -b <name>
合并某分支到当前分支:$ git merge <name>
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,
而 fast forward 合并就看不出来曾经做过合并。
删除分支:$ git branch -d <name>
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name> 强行删除。
11.解决分支冲突 ,查看分支合并图
$ git log --graph --pretty=oneline
12.暂存当前状态,解决Bug
-暂存当前状态
$ git stash
-查看 stash 历史
$ git stash list
-恢复之前状态
$ git stash pop
13.多人协作
-查看远程库信息
$ git remote -v
-从本地推送分支
$ git push origin branch-name
-在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
-push 失败,先 pull
$ git pull
-pull 失败 ,创建本地 dev 分支与远程 origin/dev 分支的链接
$ git branch --set-upstream dev origin/dev
14.标签管理
-创建标签
当前分支
$ git tag v1.0
指定分支
$ git tag v1.0 -commit_id
查看标签
$ git tag
查看标签信息
$ git show <tagname>
指定标签信息
$ git tag -a <tagname> -m "blablabla..."
-操作标签
推送一个本地标签
$ git push origin <tagname>
推送全部本地标签
$ git push origin --tags
删除本地标签
$ git tag -d <tagname>
删除远程标签
$ git push origin :refs/tags/<tagname>
15.忽略文件
编写.gitignore文件
配置文件:https://github.com/github/gitignore
16.配置别名
$ git config --global alias.st status