安装git
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建版本库
版本库又名仓库(repository),你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以还原。
1.首先选择一个合适的地方创建一个空目录:
$ cd / **回到根目录
$ cd d/bobby **跳转到d/bobby目录下
$ mkdir learngit **在该目录下新建learngit文件夹
$ cd learngit **跳转到该目录下
$ pwd **显示当前目录
/d/bobby/learngit
2.通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),细心的读者可以发现当前目录下多了一个.git
的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
把一个文件放到Git仓库只需要两步。
1.用git add将文件添加到暂存区
$ git add readme.txt
2.用git commi将暂存区的文件全部提交到仓库
$ git commit -m "wrote a readme file"
简单解释一下git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
为什么Git添加文件需要add
,commit
一共两步呢?因为add是一个个的将需要提交的文件添加到暂存区,commit
是一次将暂存区的所有文件提交到仓库。
撤销修改
文件只要没有commit提交到仓库,不管在原来工作区还是在暂存区都可以通过以下命令撤销修改:
$ git checkout -- readme.txt
删除文件
rm readme.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status
命令会立刻告诉你哪些文件被删除了:
现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
:
$ git rm readme.txt
rm 'readme.txt'
$ git commit -m "remove readme.txt"
现在,文件就从版本库中被删除了。
另一种情况是误删了,因为版本库里还有,所以可以很轻松地把误删的文件恢复:
$ git checkout -- readme.txt
分支操作
分支在本地完成,速度快。要创建一个新的分支,我们使用branch命令。
git branch test
branch命令不会将我们带入分支,只是创建一个新分支。所以我们使用checkout命令来更改分支。
git checkout test
第一个分支,或主分支,被称为"master"。
git checkout master
对其他分支的更改不会反映在主分支上。如果想将更改提交到主分支,则需切换回master分支,然后使用合并。
git checkout master
git merge test
如果您想删除分支,我们使用-d标识。
git branch -d test
tag操作
git tag <name> 默认标签是打在最新提交的commit上
git tag <name> <commit_id> 打在指定commit上
用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 1094adb
git tag 查看tag
git push --tags 上传tag
删除本地tag:
git tag -d your_tag_name
commit模板配置
在Git配置文件中配置: 在Git配置文件config中的commit下添加一项template即可,或在命令行执行git config --local commit.template aw1913_algo.gitcommit
[commit]
template = C:/Users/Administrator/.gitmessage.gitcommit
建立本地库
git init
git config --local commit.template aw1913_algo.gitcommit
git add .
git st
git commit
回退版本
git reset --hard commitID