创建版本库
1 | # mkdir learngit |
查看状态
1 | # git status |
查看日志
1 | # git log |
查看修改内容
1 | # git diff filename |
版本回退
回退到上一个版本:
1 | # git reset --hard HEAD^ |
工作区和暂存区
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
1 | (1)如果修改了还未add进暂存区,那么可以使用: |
删除文件
1 | # rm test.txt |
远程仓库
1 | 在远程仓库中创建这个版本库,然后添加秘钥,然后推送上去: |
分支管理
1 | 创建dev分支,然后切换到dev分支: |
解决冲突
1 | 例如: |
分支管理策略
1 | git checkout -b dev |
多人协作:
git clone git@github.com:geasyheart/learngit.git
要在dev分支上开发,就必须创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
修改提交
git push origin dev
git branch –set-upstream dev origin/dev
git pull
标签管理
1 | # git checkout master |
操作标签
1 | # git tag -d v0.1 删除tag v0.1 |
忽略特殊文件:
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
例如一个简单的.gitignore文件:
Windows:Thumbs.db
ehthumbs.dbDesktop.ini
Python:*.py[cod]
*.so
*.egg
*.egg-info
dist
build# My configurations:db.ini
deploy_key_rsa
git add -f filename可以强制添加文件
git check-ignore支持检查功能
git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:
去自己的工作分支
1 | $ git checkout work |