1. 程式人生 > >git用法總結

git用法總結

遠端庫與本地庫之間的操作:    

1、在本地新建git倉庫:
            新建一個資料夾 mkdir    git init 進行git倉庫初始化
            新建一個文件 touch 檔名
2、在本地建一個遠端倉庫,也是同樣的操作,本地的遠端倉庫也是本地倉庫,只是相對位置不一樣,可以把它當作遠端倉庫
3、本地倉庫關聯本地遠端倉庫:
            本地倉庫localTest1:D:\git_exam\localTest1
            本地遠端倉庫remoteTest:D:\remoteTest

4、在localTest1本地倉庫進行使用者和郵件配置 user="test",email="[email protected]"
            git config --global user.name "test"
            git config --global user.email "[email protected]"
5、在localTest1中關聯遠端:git remote add origin 絕對路徑

      git remote add origin ~/Temp/git_server/Test/  不能用相對路徑,~代表相對路徑
            git remote add origin /d/remoteTest
6、可以檢視遠端

            git remote         

7、檢視遠端倉庫地址  git remote -v
8、檢視配置  git config --list

9、刪除遠端倉庫:git remote rm origin (提示遠端倉庫已經存在時)

10、關於分支的一些操作

              git checkout -b dev 建立dev分支並切換到該分支
              git checkout dev 切換到dev分支
              git branch 檢視當前分支
              git branch -a 檢視所有分支
              git branch dev 建立dev分支

              在當前分支dev合併master分支,把master分支的修改同步到dev分支上:git merge master
              檢視當前分支的日誌:git log
               分支合併圖:git log --graph
11、撤銷某次提交:git reset

12、檢視當前目錄:   pwd

13、刪除的一些git操作

              刪除資料夾:git rm -rf 資料夾名
              刪除遠端dev分支:git push origin --delete dev
              刪除file資料夾及其下所有的檔案:git rm file -r -f
              刪除檔案:git rm 檔名    rm index.html

14、echo用法:

              echo hello world!:直接輸出列印hello world!
              echo hello world! > demo.txt //會將hello world!內容重定向列印到demo.txt中
              echo hello Fauss! > demo.txt    //hello Fauss! 會將demo.txt中的hello world!覆蓋掉
              echo hello Fauss! >> demo.txt   //hello Fauss!只會追加到demo.txt中的hello world!的後面

15、新增標籤:git tag v1.1.1

16、檢視檔案內容:cat index
17、建立新檔案:cat >filename.txt <<EOF

              de>[[email protected] ~]# cat >  linuxsir.txt  << EOF  注:建立linuxsir.org.txt檔案;
              > 我來測試 cat 建立檔案,並且為檔案輸入內容;       注:這是為linuxsir.org.txt檔案輸入內容;
              > 北南南北 測試;                   注:這是為linuxsir.org.txt檔案輸入內容;
              > EOF   注:退出編輯狀態;

18、cat 還有向已存在的檔案追加內容的功能;
             de>[[email protected] ~]# cat  linuxsir.txt 注:檢視已存在的檔案linuxsir.txt 內容;
             I am BeiNanNanBei From LinuxSir.Org .    注:內容行
             我正在為cat命令寫文件

 

            [[email protected] ~]# cat >> linuxsir.txt << EOF   注:我們向linuxsir.txt檔案追加內容;
            > 我來測試cat向文件追加內容的功能;       注:這是追回的內容
            > OK?
            > OK~
            > 北南 呈上
            > EOF   注:以EOF退出;

19、新建bug分支
            git checkout -b issue-101
            git add readme.txt
            git commit -m "fix bug 101"
            git checkout master
            git merge --no-ff -m "merged bug fix 101" issue-101

20、新建feature分支:
           git checkout -b feature
           git add vulcan.py
           git status
           git commit -m "add feature vulcan"
           git checkout dev
           git merge --no-ff -m "merged feature" feature

21、從遠端克隆一份到本地可以通過git clone
       Git支援HTTPS和SSH協議,SSH速度更快
           git clone [email protected]:/home/git/changyuan/activityTicket.git
           git clone [email protected]:nanfei9330/xx.git

22、本地庫關聯遠端庫,在本地倉庫目錄執行命令:
           git remote add origin [email protected]:nanfei9330/learngit.git
23、推送master分支的所有內容
           git push -u origin master
   第一次使用加上了-u引數,是推送內容並關聯分支。
推送成功後就可以看到遠端和本地的內容一模一樣,下次只要本地作了提交,就可以通過命令:
          git push origin master
24、推送本地分支到遠端分支,遠端分支是本地分支名
          git push origin 本地分支名(dev_wll):本地分支名(dev_wll)(把本地分支提交到遠端分支上,當作遠端的dev_wll分支)如果報錯,執行一下
          git push origin master,會出現everything up-to-date,然後在執行之前的那句話就好了

          git push origin test:master         // 提交本地test分支作為遠端的master分支
          git push origin test:test              // 提交本地test分支作為遠端的test分支
 25、拉取遠端分支
          git pull:相當於是從遠端獲取最新版本並merge到本地 
          git pull origin master
    要想把遠端的master分支拉下來與本地的dev_wll分支合併,必須先拉下來
          git fetch origin master
          git merge dev_wll

26、檢視遠端分支狀態

       git log origin/dev_wbj

git中修改檔案內容的退出,是ESC,其他的退出是ctrl+c

27、有時候git merge 和git pull origin dev_wbj:dev_wll不起作用,但是也不報錯,直接用git pull origin dev_wbj,直接合並

28、有時候會遇到這樣一個問題:test分支最新的版本是11月29號的,develop分支最新的版本是10月27號,test分支上到10月27號11月3號之間提交的程式碼,都已正式上線,但是develop分支的程式碼還未有完整的線上程式碼。可以使用git的複製命令,git cherry-pick commitId,將test分支上10月27-11月3的程式碼複製到develop分支上。

如果複製過程中有衝突,可以放棄複製,git cherry-pick --abort。同樣的可以得到merge不同分支的時候如果有衝突,放棄合併 git merge --abort

29、版本回退

git reset --hard commitId 直接回退到某個提交版本

git reset --hard HEAD~0  0表示回退到當前提交版本,1表示回退到上一個版本,數字從0開始