Git是目前世界上最先进的分布式版本控制系统,哈哈,为了避免忘记,记录一下
安装完后先配置 用户名和邮箱
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
通过 git init命令把目录变成Git可以管理的仓库:
$ git init
添加文件到暂存区(可反复多次使用,或一次添加多个文件)
$ git add fliename1.txt
$ git add fliename2.txt fliename2.txt
接着把文件提交到仓库
$ git commit -m "这里填写本次提交的说明"
在这里说明一下,git add命令是把文件放到暂存区,而commit是把暂存区的提交到仓库,如果add完了之后修改了文件再commit 是不会提交你修改之后的
以下常用的命令说明
$ git status 查看仓库当前状态
$ git diff 查看被修改的具体内容
$ git log 查看提交的历史记录
$ git log --pretty=oneline 查看提交的历史记录(带commit id)
$ git reset --hard HEAD^ 回退历史记录
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,
上一个版本就是HEAD^,上上一个版本就是HEAD^^,也可以写成HEAD~2,不过会在历史记录中删除掉回退之前的版本也就是3,2,1 从3回到2,3也就在历史记录中消失了,也可以通过commit id来回退
$ git reset --hard 5425874 commit id可以不写全,但也要git能识别出来,不然太少他也不知道到底要哪个版本
$ git reflog 记录你的每一次命令
$ git checkout -- fliename1.txt 撤销,丢弃工作区的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
$ git rm fliename1.txt
$ git commit -m "remove"
在版本库中删除文件 并且提交(命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
$ git remote add origin url 添加地址url为远程库
$ git push -u origin master 推送master分支到远程库上
$ git clone url 从地址为url远程仓库克隆
$ git checkout -b dev 创建一个叫dev的分支并切换到dev分支上
相当于以下两条命令
$ git branch dev 创建dev分支
$ git checkout dev 切换dev分支
$ git branch 查看分支 带*号的是当前分支
$ git merge dev 把dev分支合并到你所在的分支上(历史记录看不出有合并)
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
$ git merge --no-ff -m "本次的说明" dev
$ git branch -d dev 合并完就可以删除dev分支了,如果你没有合并就删除 git会发出警告,如果确实要删除d改成D 就可以了
如果合并的时候发生冲突,查看文件,修改成你要的,提交就ok了,
$ git log --graph --pretty=oneline --abbrev-commit 查看分支合并的情况
$ git stash 储藏工作区
$ git stash list 查看被储藏的工作区
$ git stash apply 恢复工作区 但是list里没有删除
$ git stash pop 恢复工作区并且删除list记录
$ git remote 查看远程库信息 可加上 -v 显示更全的信息
$ git tag v1 在当前分支打上一个v1标签
$ git tag v0.9 5425874 在commit id为5425874的记录上打上v0.9标签
$ git tag 查看标签
$ git show v0.9 查看标签v0.9的信息
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
$ git tag -a v1.1 -m "version 1.1" 5425874
$ git push origin v1.0 推送标签为v1.0的版本到远程库
$ git tag -d v1.0 删除标签
如有错误,还望指出~