1. 程式人生 > 實用技巧 >git常用命令和操作

git常用命令和操作

一般配置

git --version   //檢視git的版本資訊
git config --global user.name   //獲取當前登入的使用者
git config --global user.email  //獲取當前登入使用者的郵箱

登入git

/* 如果剛沒有獲取到使用者配置,則只能拉取程式碼,不能修改  要是使用git,你要告訴git是誰在使用*/

git config --global user.name 'userName'    //設定git賬戶,userName為你的git賬號,
git config --global user.email 'email'

建立一個資料夾

mkdir nodejs    //建立資料夾nodejs
cd nodejs       //切換到nodejs目錄下

初始化git倉庫

git init //在nodejs資料夾下初始化一個倉庫,此時檔案裡會到一個.git的隱藏資料夾

建立忽略檔案

touch .gitignore    //不需要伺服器端提交的內容可以寫到忽略檔案裡
    /*
        .git
        .idea
    */

檢視目錄

ls -al

建立檔案並寫入內容

  • 如果檔案不存在則會建立檔案

    echo "hello git"
     > index.html       //將'hello git' 寫入到index.html中

    單個>箭頭表示寫入, >>表示追加

檢視檔案內容

cat index.html

增加到暫存區中

git add index.html
git add -A      //全部新增到快取區

增加到版本庫中

git commit -m '備註資訊'

檢視版本

git log --oneline

比較差異

  • 比較的是暫存區和工作區的差異

    git diff 
  • 比較的是暫存區和歷史區的差異

    git diff --cached
  • 比較的是歷史區和工作區的差異(修改)

    git diff master

    撤回內容

    (如果修改了工作區的檔案後發現改錯了,可以用暫存區或者版本庫裡的檔案替換掉工作區的檔案)
  • 用暫存區中的內容或者版本庫中的內容覆蓋掉工作區

    git checkout index.html

    取消增加到暫存區的內容(新增時)

    git reset HEAD index.html

    //顯示目錄的狀體 有沒有新增或者修改檔案

    git status

刪除本地檔案

rm fileName

刪除暫存區

  • 保證當前工作區中沒有index.html

    git rm index.html --cached

使用--cached 表示只刪除快取區中的內容

回滾版本

  • 回滾最近的一個版本 git log

    git reset --hard HEAD/commit_id

回滾到未來

git reflog

分支管理

建立分支

git branch dev

切換分支

git checkout dev

建立分支並切換分支

git checkout -b dev

刪除分支

git branch -d dev

在分支上提交新的版本

git commit -a -m 'dev1'

合併分支

git merge dev

分支的合併後顯示log

git log --oneline --graph --decorate

在分支開發的過程中遇到其他問題需要切換其他分支

  • 保留寫好的內容在切換到主幹
  • 保留內容

    git stash 

在次切換分之後需要應用一下保留的內容

git stash apply

丟掉儲存的內容

git stash drop

使用並丟掉

git stash pop

最佳分支

-有的時候開發需要合併指定的內容,而不是合併所有的提交,所以我們需要挑選最好的,自己生產版本

合併分支把樹杈掰到主幹上

git rebase

新增遠端的倉庫

push -u

-u引數 upstream

git push origin master -u   //獲取最新程式碼

連線遠端倉庫

git remote add origin 倉庫的地址

檢視遠端倉庫

git remote -v

刪除遠端倉庫

git remote rm origin

檢視所有分支包括本地和線上
git branch -a // 不加-a只看本地
刪除本地分支
git branch -d 分支名
刪除遠端分支
git push origin –delete 分支名




git常用命令

安裝及配置:

Ubuntu下安裝:sudo apt-get install git
配置使用者名稱:git config --global user.name "你的名字"
配置e-mail:git config --global user.email "你的郵箱@xx.com"

與新增有關的:

將當前目錄變為倉庫:git init
將檔案新增到暫存區:git add 檔名 [可選:另一個檔名]
將暫存區提交到倉庫:git commit –m "描述"

與查詢有關的:

查詢倉庫狀態:git status
比較檔案差異(請在git add之前使用):git diff 檔名
檢視倉庫歷史記錄(詳細):git log
檢視倉庫歷史記錄(單行):git log --pretty=onlinegit log --online
檢視所有版本的commit ID:git reflog

與撤銷有關的:

撤銷工作區的修改:git checkout -- 檔名
撤銷暫存區的修改:git reset HEAD 檔名
回退到歷史版本:git reset --hard 該版本ID
回退到上個版本:git reset --hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示,以此類推

與標籤有關的:

為當前版本打標籤:git tag 標籤名
為歷史版本打標籤:git tag 標籤名 該版本ID
指定標籤說明:git tag –a 標籤名 –m "標籤說明" [可選:版本ID]
檢視所有標籤:git tag
檢視某一標籤:git show 標籤名
刪除某一標籤:git tag –d 標籤名

與GitHub有關的:

先有本地庫,後有遠端庫,將本地庫push到遠端庫

關聯本地倉庫和GitHub庫:git remote add origin 網站上的倉庫地址
第一次將本地倉庫推送到GitHub上:git push –u origin master

先有遠端庫,後有本地庫,從遠端庫clone到本地庫

從遠端庫克隆到本地:git clone 網站上的倉庫地址

網站地址可以選擇HTTPS協議(https://github.com...)、SSH協議([email protected]...)。
如果選擇SSH協議,必須將Ubuntu的公鑰新增到GitHub上。見下一步

SSH Key

生成SSH Key:ssh-keygen –t rsa –C "你的郵箱@xx.com"
生成Key時彈出選項,回車選擇預設即可。
Key儲存位置:/root/.ssh
登陸GitHub,建立new SSH key,其內容為/root/.ssh/id_rsa.pub中文字

Git配置SSH Key的時候提示金鑰無效

錯誤提示:Key is invalid. You must supply a key in OpenSSH public key format
翻譯:金鑰無效。必須提供OpenSSH公鑰格式的金鑰

操作步驟
1.生成公鑰
ssh-keygen -t rsa -C "GitHub賬號的註冊郵箱"
2.進入路徑
vim ~/.ssh/id_rsa.pub
3.複製公鑰到GitHub設定SSH and GPG keys中的SSH keys

錯誤原因:格式不正確
解決方法:
第2步使用如下命令後複製
cat ~/.ssh/id_rsa.pub

已經有了本地庫和遠端庫,二者實現同步

本地庫的改動提交到遠端庫:git push origin master
更新本地庫至遠端庫的最新改動:git pull