学习环境:Linux Ubuntu 15.04
- 安装:
sudo apt-get install git,安装完后记得配置用户信息,这样才能使用Git哦!配置用户信息请参考7.Git配置第二条; - 创建版本库:
1)创建目录:mkdir folder,cd folder,pwd;
2)初始化:git init;
3)查看.git目录:ls -ah;
4)创建文件;
5)添加文件到git:git add filename;
6)提交:git commit -m “描述语”。 - 版本管理:
1)查看状态:git status;
2)查看修改内容:git diff filename;
3)查看提交历史记录:git log或 git log –pretty=oneline;
4)回退版本:git reset –hard commit_id,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上一百个版本则描述成HEAD~100;
5)查看所有版本ID:git reflog;
6)工作区与暂存区:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库;Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD;git add实际上就是把文件修改添加到暂存区,而git commit实际上就是把暂存区的所有内容提交到当前分支;
7)撤销修改:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file;
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作;
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库;
8)删除文件:rm filename->git rm filename->git commit,如果删错需要撤回使用git checkout – filename; - 远程仓库:
1)创建远程仓库:先创建SSH Key,在用户目录下输入ssh-keygen -t rsa -C “youremail@example.com”,生成.ssh目录,包含id_rsa和id_rsa.pub两个文件,再登陆GitHub,打开“Account settings”,“SSH Keys”页面,点击“Add SSH Key”,在Key文本框中粘贴id_rsa.pub中的内容,点击“Add Key”;
2)添加远程库并关联本地仓库:首先在GitHub上创建仓库,再将本地仓库关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;关联后,使用命令git push -u origin master第一次推送master分支的所有内容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
3)克隆远程仓库到本地:使用命令git clone git@server-name:path/repo-name.git; - 分支管理:
1)查看分支:git branch;
2)创建分支:git branch;
3)切换分支:git checkout;
4)创建+切换分支:git checkout -b;
5)合并某分支到当前分支:git merge;
6)删除分支:git branch -d,强制删除分支:git branch -D ;
7)查看分支合并图:git log –graph;
8)普通合并分支:禁用Fast forward,使用命令git merge –no-ff -m “describe” branchname;
9)查看远程库信息:git remote或者git remote -v;
10)推送分支:git push origin branchname;
11)本地与远程分支对应:git checkout -b branchname origin/branchname;
12)本地与远程分支关联:git branch –set-upstream-to origin/branchname branchname;
13)抓取分支:git pull; - 标签管理:
1)创建标签:git tag;
2)创建制定提交版本标签:先查看历史提交的commit id:git log –pretty=oneline –abbrev-commit,git tagcommit_id;
3)查看所有标签:git tag;
4)查看标签信息:git show
5)删除标签:git tag -d;
6)推送标签:git push origin –tags或git push origin;
7)删除远程标签:git push origin :refs/tags/,前提是先删除本地的标签; - Git配置:
1)显示颜色:git config –global color.ui true;
2)配置用户信息:git config –global user.name “Your Name”,
3)配置别名:git config –global alias.st status,git config --global user.email "email@example.com";
4)忽略特殊文件:不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore.git config --global alias.co checkout, git config --global alias.ci commit, git config --global alias.br branch, git config --global alias.unstage 'reset HEAD';