Git經常使用命令及公鑰配置

    原本我之前都是用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
相關文章
相關標籤/搜索