1.把某个目录变成Git可以管理的仓库
git init
2.把文件提交到仓库
git add 文件名 //把文件添加到仓库
git commit -m "提交说明" //把文件提交到仓库
3.查看仓库状态
git status
4.查看仓库具体修改了啥
git diff
5.显示从最近到最远的提交日志 /红字成一行输出
git log [--pretty=oneline]
6.回退到某一个版本
git reset --hard HEAD^ //回退到上个版本
git reset --hard HEAD~100 //回退往上100个版本
git reset --hard 1904a //回退某个id的版本
7.用来记录你的每一次命令
git reflog
8.撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
第一步用命令就回到了场景1,
git reset HEAD <file>
第二步按场景1操作。
git checkout -- file
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
9.删除文件
$ rm test.txt //删除工作区文件
$ git rm test.txt //删除版本库文件
$ git commit -m "remove test.txt //提交删除
10.要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令第一次推送master分支的所有内 容;
git push -u origin master
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
11 .要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
$ git clone git@github.com:michaelliao/gitskills.git
12 .分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:
$ git merge --no-ff -m "merge with no-ff" dev
13.推送修改
git push origin <branch-name>
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin 分支 推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令。
git branch --set-upstream-to <branch-name> origin/<branch-name>
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支
git push origin branch-name
如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
14. 标签
git tag 标签名 创建标签
git tag 查看标签
$ git log --pretty=oneline --abbrev-commit
查看历史commit id
$ git show v0.9查看标签信息
指定标签信息:
git tag -a <tagname> -m "blablabla..."
可以推送一个一个分支
git push origin <tagname>