Git(分布式版本控制系统)
- Linux安装:
$ sudo apt-get install git
- 设置个人信息:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- 创建一个版本库
$ mkdir LearnGit
$ cd LearnGit
$ git init
- 把文件添加至版本库中
$ touch readme.txt
$ git add readme.txt
$ git commit -m "add a readme file"
commit
可一次提交多个文件,如:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m "add 3 files"
git add
是将工作区的文件添加到暂存区
git commit
是将暂存区的文件提交到当前分支
- 查看修改内容:
$ git diff readme.txt // diff即difference
- 查看版本库当前的状态
$ git status
git log
命令查看从最近到最远的提交日志,可加上--pretty=oneline
参数。
$ git log --pretty=oneline
- 在
Git
中,用HEAD
表示当前版本,即最新的提交,HEAD^
表示上个版本,HEAD^^
表示上上个版本,往上100个版本为HEAD~100
$ git reset --hard HEAD^ // 回退到上个版本
回退到上个版本后,git log
看不到最近提交的版本了,如果要回到最近提交的版本,则需要找到版本的commit id
。
$ git reset --hard 3628164 // 3628164即为版本commit id
git reflog
可查看历史命令
$ git reflog // reflog中第一列即为commit id
- 丢弃工作区的修改
$ git checkout -- readme.txt
- 撤销暂存区的修改
$ git reset HEAD readme.txt
- 删除文件
$ git rm test.txt
$ git commit -m "remove test.txt"
- 创建分支
$ git checkout -b dev // 创建dev分支
git checkout
命令加上-b参数表示创建并切换,相当于以下两个命令:
$ git brance dev
$ git checkout dev
可用git branch
命令查看当前分支:
$ git branch
* dev // 当前分支前面会标一个*号
master
- 合并分支
$ git merge dev
git merge
命令用于合并指定分支到当前分支。
- 删除分支
$ git branch -d dev
git log --graph
命令可以看到分支合并图- 配置别名
$ git config --global alias.st status
$ 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'
$ git config --global alias.last 'log -1'
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit"