Git經常使用命令--瞭解這些就夠了

將本地工程push到遠程

方式一:html

  1. 創建本地倉庫android

    git init
  2. 建立遠程倉庫:在github或者gitlab建立遠程倉庫git

  3. 讓本地倉庫和遠程倉庫進行關聯github

    git remote add origin git@mycode.skylettestudio.com:xlPay/XLPay.git
  4. 進行添加和提交操做vim

    git add .
     git commit -m"添加文件"
  5. push到遠程windows

git push -u origin master

因爲遠程庫是空的,第一次推送master分支時,加上-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令,以下:

    git push origin master

方式二:ssh

  1. 建立遠程倉庫gitlab

  2. 把遠程倉庫clone到本地post

    git clone git@mycode.skylettestudio.com:xlPay/XLPay.git
  3. 將本地工程copy到clone的文件夾中測試

  4. 進行添加和提交操做

    git add -A
     git commit -m"添加文件"
  5. 將工程push到遠程

    git push origin master

Add操做

  • 添加單個改動文件,如:readme.txt

    git add readme.txt

  • 添加全部改變的文件,有以下幾種區別:

    //表示添加全部內容

    git add -A

    //表示添加新文件和編輯過的文件不包括刪除的文件

    git add .

    //表示添加編輯或者刪除的文件,不包括新添加的文件

    git add -u

  • 添加同時提交內容

    git commit -am"添加並提交到倉庫"

分支操做

  • 查看分支

    git branch
  • 建立分支

    git branch <name>
  • 切換分支

    git checkout <name>
  • 建立+切換分支

    git checkout -b <name>
  • 合併某分支到當前分支

    git merge <name>
  • 刪除本地分支

    git branch -d <name>
  • 查看遠程分支列表

    git branch -a
    
      綠色表明當前項目所在的分支,紅色就是遠程分支列表
  • 提交該分支到遠程倉庫(即:在遠程建立dev分支,並提交內容):

    git push origin dev
  • 從遠程獲取dev分支內容:

    git pull origin dev

    或者經過用命令行,運行 git fetch,能夠將遠程分支信息獲取到本地,
    再運行 git checkout -b local-branchname origin/remote_branchname
    就能夠將遠程分支映射到本地命名爲local-branchname 的一分支

  • 刪除遠程分支

    git push origin --delete <branchName>
  • 重命名本地分支

    git branch -m <oldbranch> <newbranch>
  • 重命名遠程分支

    先刪除遠程分支,而後重命名本地分支,再從新提交一個遠程分支

版本回退

在Git中,用HEAD表示當前版本。上一個版本就是HEAD,上上一個版本就是HEAD。,固然往上100個版本寫100個比較容易數不過來,因此寫成HEAD~100。

  • 查看提交日誌(全部的提交日誌,最近到最遠)

    git log
  • 查看提交的內容(好比更改了哪些類,刪除了哪些文件等)

    git log -p -1// -p 選項展開顯示每次提交的內容差別,用 -2 則僅顯示最近的兩次更新
  • 查看命令歷史(即:咱們每個命令)

    git reflog
  • 經過git log 或者 git reflog能夠拿到每一個版本的commit_id,而後經過切換版本/回退版本的命令便可:

    git reset --hard commit_id
  • 回退版本操做:

    //git log 拿到commit_id
      git log
      //回到commit_id那個版本
      git reset --hard commit_id
  • 已經回退到了以前的版本,又想回到新版本

    //查看全部的命令,而後找到新版本提交的 commit_id
      git reflog
      //去到新版本 
      git reset --hard commit_id
  • 讓這個文件回到最近一次git commit或git add時的狀態

    git checkout -- readme.txt

標籤管理

  • 打一個新標籤

    //默認標籤是打在最新提交的commit上的
      git tag <name>
  • 查看全部標籤(標籤不是按時間順序列出,而是按字母排序的)

    git tag
  • 查看某個標籤信息

    //標籤不是按時間順序列出,而是按字母排序的
      git show <tagname>
  • 建立帶有說明的標籤,用-a指定標籤名,-m指定說明文字

    git tag -a v0.1 -m "設置了標籤啊" 3628164
  • 刪除本地標籤

    git tag -d v0.1
  • 推送一個本地標籤到遠程

    git push origin <tagname>
  • 推送所有未推送過的本地標籤到遠程

    git push origin --tags
  • 刪除一個遠程標籤

    //先在本地進行刪除
      git push origin :refs/tags/<tagname>
  • tag默認是打在最新的commit上的,若是想給已經commit過的內容添加標籤以下:

    1. git reflog //找到歷史版本的 commit id = 6224937
      2. git tag v1.0.0 6224937
  • 獲取遠程tag

    git fetch origin tag <tagname>

解決衝突

  • 合併衝突:

    //提交的文件若是出現衝突就會出現這種提示
      CONFLICT (content): Merge conflict in readme.txt
    
      Automatic merge failed; fix conflicts and then commit the result.
    1. 經過git status 查看衝突文件
    2. Git用<<<<<<<,=======,>>>>>>>標記出不一樣分支的內容
    3. 修改文件,保存,再次提交便可
    4. 經過git log查看分支合併的狀況

更新本地工程

  • 獲取遠端庫最新信息

    git fetch origin
  • 做比較

    git diff master origin/master
  • 合併本地倉庫代碼

    git merge origin/master

公共操做

  • 把本地git倉庫恢復爲普通文件夾

    1. 刪除這個目錄裏的隱藏文件夾.git
    2. rm -rf .git/
  • 測試Github和Gitlab是否添加了SSH

    ssh -T git@github.com
      ssh -T git@gitlab.com
  • 查看未傳送到遠程代碼庫的提交描述/說明(commit到了本地倉庫,可是沒有push到遠程倉庫的內容的提交說明)

    git cherry -v origin thcdev//後面要加push到的遠程倉庫名
  • 查看遠程庫信息

    git remote -v;
  • 清屏操做

    git reset
  • git log以後退出

    按 Q 便可
  • 找到歷史提交的commit id

    git log --pretty=oneline --abbrev-commit
  • 和遠程倉庫創建聯繫

    1. 建立SSH Key

      • 在用戶主目錄(這裏在windows下是指 c/user/Administrator/.ssh/id_rsa)下,看看有沒有.ssh目錄。

      • 若是有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,若是已經有了,可直接跳到下一步。

      • 若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key:

        $ ssh-keygen -t rsa -C "youremail@example.com"
      • 須要把郵件地址換成你本身的郵件地址,而後一路回車,使用默認值便可。

      • 因爲這個Key也不是用於軍事目的,因此也無需設置密碼。

      • (測試的結果:C:\Users\Administrator.ssh 裏面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa
        是私鑰,不能泄露出去,id_rsa.pub是公鑰,能夠放心地告訴任何人。)

    2. 登錄GitHub,打開「Account settings」,「SSH Keys」頁面:而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容。點「Add Key」,你就應該看到已經添加的Key:

      注意兩點:

      • 爲何GitHub須要SSH Key呢?由於GitHub須要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,因此,GitHub只要知道了你的公鑰,就能夠確認只有你本身才能推送。

      • GitHub容許你添加多個Key。假定你有若干電腦,你一下子在公司提交,一下子在家裏提交,只要把每臺電腦的Key都添加到GitHub,就能夠在每臺電腦上往GitHub推送了。

    3. 測試SSH key是否添加成功

      輸入以下命令進行測試

      ssh -T git@github.com

      若是出現:

      ssh_success.png

      說明添加成功了。

Git 命令行經常使用命令

  • 進入當前路徑的dev

    cd dev
  • 返回上級目錄

    cd ..
  • 返回上次目錄

    cd
  • 查看當前目錄

    pwd
  • 列出當前目錄內容

    ls
  • 新建一個名爲dev的目錄

    mkdir dev
  • 強制刪除,無論目錄爲不爲空

    rm -rf dev

Vim經常使用命令

  • 關閉(Exiting)

    :w 保存
      :wq 保存並關閉 :x
      :q 關閉(已保存)
      :q! 強制關閉
  • 關閉插入模式

    ESC//點擊以後就能夠執行 vim命令操做

大佬命令集合

git問題收錄

  • Unable to create 'E:/WorkSpace/xiaoluSDK-android/.git/index.lock': File exists.

    rm -f ./.git/index.lock

[搞一波](https://blog.zengrong.net/post/1746.html#)
  • 當操做git的時候,若是進入了不少命令.~ ... 等,須要按q退出

做者:CoderThc 連接:https://www.jianshu.com/p/f92ed1ca8120 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

相關文章
相關標籤/搜索