廖雪峰的官方网站:
GitHub网站:如果是Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./configmakemake install这几个命令安装就好了。
安装完成后配置用户命和邮箱地址:$ git config --global user.name "Your Name"$ git config --global user.email ""
让Git显示颜色,会让命令输出看起来更醒目$ git config --global color.ui true
创建一个版本库:$ mkdir git$ cd git$ pwd/data/git
把这个目录变成Git可以管理的仓库:$ git init
把文件添加到仓库:(编辑一个文件,内容随意)$ git add readme.txt把文件提交到仓库:$ git commit -m "wrote a readme file"
查看状态,文件是否被改动:$ git status具体修改了什么内容:$ git diff readme.txt
查看历史记录:$ git log如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:$ git log --pretty=oneline
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。$ git reset --hard HEAD^
最新的那个版本“append GPL”已经看不到了!好比你从21世纪坐时光穿梭机来到了19世纪,想再回去已经回不去了,肿么办?$ git reset --hard 3628164
现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?$ git reflog
查看工作区和版本库里面最新版本的区别:$ git diff HEAD -- readme.txt
把文件在工作区的修改全部撤销,这里有两种情况:一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit或git add时的状态$ git checkout -- readme.txt
暂存区的修改撤销掉(unstage),重新放回工作区:$ git reset HEAD readme.txt
从版本库中删除该文件:$ git rm test.txt$ git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:$ git checkout -- test.txt
要关联一个远程库,使用命令git remote add origin ;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
创建dev分支git branch dev
切换到dev分支git checkout dev
查看当前分支git branch
把dev分支的工作成果合并到master分支上git merge dev
地删除dev分支git branch -d dev
查看分支的合并情况git log --graph --pretty=oneline --abbrev-commit
准备合并dev分支,请注意--no-ff参数,表示禁用Fast forwardgit merge --no-ff -m "merge with no-ff" dev
如果要丢弃一个没有被合并过的分支git branch -D <name>
查看远程库信息git remote -v
推送分支git push origin master
抓取分支git clone
打一个新标签git tag v1.0
git tag v0.9 6224937
查看所有标签git tag
创建带有说明的标签,用-a指定标签名,-m指定说明文字git tag -a v0.1 -m "version 0.1 released" 3628164
查看标签说明文字git show <tagname>
如果标签打错了,也可以删除git tag -d v0.1
推送某个标签到远程git push origin <tagname>
一次性推送全部尚未推送到远程的本地标签git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:$ git tag -d v0.9Deleted tag 'v0.9' (was 6224937)然后,从远程删除。删除命令也是push,但是格式如下:$ git push origin :refs/tags/v0.9To
- [deleted] v0.9忽略某些文件时,需要编写.gitignore