原本我之前都是用Eclipse內的git來進行版本管理的,全部的操做都只是在圖形化界面點幾個按鈕,可是最近換成了原生態的git,全部的操做都回到命令行界面,因此在這裏記一下一些命令,省得往後忘記。git
安裝完git以後,先進行簡單的配置(用來配置你的姓名和郵箱):vim
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
新建一個文件夾,而後進入當前目錄,能夠用init來將當前目錄變成git能夠管理的倉庫:ssh
$ git init
修改文件,將其放入本目錄下,而後能夠用add將文件添加進倉庫(add能夠一次添加多個文件):gitlab
$ git add test.py test1.py
add完後,就能夠用commit正式將文件提交進倉庫了:測試
$ git commit -m "add 2 new files."
status能夠查看當前倉庫的狀態(文件提交狀態等等):命令行
$ git status
status也許能夠告訴你哪些文件被修改了,可是你要查看那些文件到底哪被修改了,就得用到diff了,若是diff後面跟兩個版本id的話,就是列出這兩個版本之間的修改之處:日誌
$ git diff test.py $ git diff f9595003761bcef0c25307a4950c24851546a633 9ec0b82d6b1288018f7e5f0d9a9bc2b4d1b48b13
發現代碼寫錯了,不想提交,想回到原來的版本:code
git checkout test.py
有時咱們提交的版本太多了,想要查一下歷史記錄的話,就能夠用log命令:ip
$ git log $ git log -3 #查看近3條日誌(下方爲輸出日誌,用...省略了部份內容) commit 853c7c7...2013e2c7247f Merge: 5b..fb f1..0 Author: huahao <hu...i> Date: Wed Jan 31 09:48:25 2018 +0800 Merg...sis into huahao ... ... ...
回滾到任意版本:rem
# 853c7c7...2013e2c7247f即上一條命令git log所打印的日誌中的commit後面跟的內容 git reset --hard 853c7c7...2013e2c7247f # 強制提交到master分支 git push -f origin master
拉取一個分支:
$ git checkout -b dev origin/dev
切換到一個分支:
$ git checkout dev
建立一個分支並切換到該分支:
$ git checkout -b new_branch_name
根據某個tag來建立新的分支(用於從某個tag節點來開始從新寫代碼):
git branch new_branch_name tag_name
根據某個分支來建立新的分支(如根據線上master建立new_branch分支):
git checkout -b new_branch origin/master
將代碼放到暫存區(當寫代碼寫到一半,須要緊急修復一個bug,可是又不想提交當前代碼時,能夠先將寫到一半的代碼放到暫存區):
git stash
將代碼從暫存區取出來(取的是全部暫存進去的代碼):
git stash pop
查看當前所在分支:
$ git branch
拉取雲端代碼庫代碼:
$ git pull
合併指定分支到當前分支(-m後面跟的是提交的備註):
$ git merge --no-ff -m "merge with no-ff" branch_name
合併錯了,恢復一下:
git reset --hard
將代碼提交到雲端指定分支:
$ git push origin branch_name
以上是經常使用的git命令,下面再記錄一下公鑰的配置,省得之後忘記:
1.打開ssh目錄:
cd ~/.ssh
2.生成密鑰文件,這樣就會生成默認名字爲id_rsa和id_rsa.pub(自行修改成本身的郵箱地址):
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
3.打開公鑰文件(id_rsa.pub),並把內容複製至代碼託管平臺上(找到代碼託管平臺的部署公鑰管理):
vim ~/.ssh/id_rsa.pub
4.完成,能夠自行測試一下:
ssh -T git@mygit.com
P.S. gitlab中新建git後的提示命令,可供參考(*****是被打碼的部分,自行替換那個值):
Git global setup
git config --global user.name "h***o" git config --global user.email "h*****i"
Create a new repository
git clone git@gitlab.*********.git cd d****s touch README.md git add README.md git commit -m "add README" git push -u origin master
Existing folder or Git repository(自行替換existing_folder)
cd existing_folder git init git remote add origin git@gitlab.*******.git git add . git commit git push -u origin master