Git(分佈式版本控制系統)
- Linux安裝:
$ sudo apt-get install git
- 設置個人信息:
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
- 創建一個版本庫
$ 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"