git的簡(jiǎn)單使用

一.簡(jiǎn)單的命令:

1.列出所有分支

 git branch -a

2.創(chuàng)建test分支

  git branch test001

  git 把本地分支推送到遠(yuǎn)程
      git push --set-upstream origin test001

  克隆某個(gè)地址到該目錄下(默認(rèn)是master分支)
  git clone git@code.xxxx/..../test.git

3.切換到test分支:

  git checkout test001
   拉取新分支
   git checkout -b test002

4.添加add修改:

  git add -A 提交所有變化
  git add -u 提交被修改(modified)和被刪除(deleted)文件,不包括新文件(new)   僅更新當(dāng)前正 在跟蹤的文件。
  git add . 提交新文件(new)和被修改(modified)文件,不包括被刪除(deleted)文件'
  git怎么查看哪些文件是在版本控制下的呢
  git ls-files

5.添加commit注釋

  git commit -m "第一次提交代碼"

6.提交到服務(wù)器

  git push origin test001
  當(dāng)push 報(bào)錯(cuò):HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large]
  則修改push方式,改為ssh
  git remote set-url origin git@git.xxx.xx:jiangtaisheng2020/cmcstaffcomponentkit.git
  git獲取遠(yuǎn)程路徑
  git remote -v

7.拉取服務(wù)器代碼:

 git pull

8.把 test001 分支合并到master分支

  git checkout master
  git merge  test001 

9.刪除test分支

    刪除本地分支
    git branch -d test001
    刪除服務(wù)器test分支
    git push origin --delete test001

10.提交代碼(解決沖突版本)

       1、git stash (這是將本地代碼回滾值至上一次提交的時(shí)候,就是沒(méi)有你新改的代碼)
       2、git pull(將遠(yuǎn)程的拉下來(lái))
       3、git stash pop(將第一步回滾的代碼釋放出來(lái),相等于將你修改的代碼與下拉的代碼合并)
    然后解決沖突,你本地的代碼將會(huì)是最新的代碼

11.GIT 回溯/退回版本

第一步: git log 查看之前的commit的id,找到想要還原的版本
第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477   還原到之前的某個(gè)版本
第三步: git push -f origin master  強(qiáng)制push到遠(yuǎn)程


git還原某個(gè)特定的文件到之前的版本 
      場(chǎng)景: 對(duì)于某個(gè)[Git]控制下的文件進(jìn)行了修改,但是改的不滿意,想退回到改之前的版本。假定該文件為 WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 

 解決方法:

第一步: 在命令行中輸入  git log WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 得到該文件的commit 歷史。

第二步: 復(fù)制需要回退版本的hash,在此假設(shè)我們回退到 bbf560998082fa27e928effc30926cd2858c445c ,則復(fù)制該序列即可

第三步:checkout 對(duì)應(yīng)版本。格式為 git checkout <hash> <filename>, 在此即為命令行中輸入 git checkout bbf560998082fa27e928effc30926cd2858c445c WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 

第四步: commit checkout下來(lái)的版本。 如: git commit -m "revert to previous version"

12.Git版本回退后再恢復(fù) 因版本分支錯(cuò)誤,將版本回退到某個(gè)版本,但發(fā)現(xiàn)期間新建的文件丟失,想撤銷本次版本回退,重新回到操作前的狀態(tài).

   第一步:   通過(guò)git reflog命令查看操作日志:
   第二步: 查看對(duì)應(yīng)的版本號(hào),就可以恢復(fù)到任意版本:
   第三步:恢復(fù)版本:  git reset --hard "af24a0b"

13. 查看日志

   git log        

14. 查看提交記錄

   git reflog    

15.Git 保存和恢復(fù)工作進(jìn)度(stash)

      前提:必須是處于git下的文件,未add到git的文件無(wú)法使用。
      1.保存當(dāng)前工作進(jìn)度,將工作區(qū)和暫存區(qū)恢復(fù)到修改之前。
        命令:git stash
        命令:git stash save message.  作用同上,message為此次進(jìn)度保存的說(shuō)明。

      2.顯示保存的工作進(jìn)度列表,編號(hào)越小代表保存進(jìn)度的時(shí)間越近。
        命令:git stash list
      3.恢復(fù)工作進(jìn)度到工作區(qū),此命令的stash@{num}是可選項(xiàng),在多個(gè)工作進(jìn)度中可以選擇恢復(fù),不帶此項(xiàng)則默認(rèn)恢復(fù)最近的一次進(jìn)度相當(dāng)于git stash pop stash@{0}
        命令:git stash pop stash@{num}

      4.恢復(fù)工作進(jìn)度到工作區(qū)且該工作進(jìn)度可重復(fù)恢復(fù),此命令的stash@{num}是可選項(xiàng),在多個(gè)工作進(jìn)度中可以選擇恢復(fù),不帶此項(xiàng)則默認(rèn)恢復(fù)最近的一次進(jìn)度相當(dāng)于git stash apply stash@{0}
      命令:git stash apply stash@{num}
      5.刪除一條保存的工作進(jìn)度,此命令的stash@{num}是可選項(xiàng),在多個(gè)工作進(jìn)度中可以選擇刪除,不帶此項(xiàng)則默認(rèn)刪除最近的一次進(jìn)度相當(dāng)于git stash drop stash@{0}
      命令:git stash drop stash@{num}
      6.刪除所有保存的工作進(jìn)度。
        命令:git stash clear
      7.顯示做了哪些改動(dòng),默認(rèn)show第一個(gè)存儲(chǔ),如果要顯示其他存貯,后面加stash@{$num},比如第二個(gè) git stash show stash@{1}
          命令: git stash show :
      8.顯示第一個(gè)存儲(chǔ)的改動(dòng)
          命令: git stash show -p 
          如果想顯示其他存存儲(chǔ),
          命令:git stash show  stash@{$num}  -p ,比如第二個(gè):git stash show  stash@{1}  -p

16.Git打標(biāo)簽

        1. 列顯標(biāo)簽
            git tag
        2.如果標(biāo)簽過(guò)多,可以進(jìn)行篩選,終端輸入:
             git tag -l 'V1.0.*'
        3.創(chuàng)建輕量標(biāo)簽 
             git tag v1.0.1 或者  git tag -a v1.0.1 -m 'Test001 V1.0.1'
        4.對(duì)歷史commit打tag
             git tag v1.0.1  06c0b98
        5.切換標(biāo)簽  
              git checkout v1.0.1
        6.查看標(biāo)簽信息
              git show v1.0.1
        7.刪除本地標(biāo)簽
               git tag -d v1.0.1
        8.刪除遠(yuǎn)程標(biāo)簽
                git tag -d v1.0.1
                git push origin :refs/tags/v1.0.1
        9.推送指定版本到遠(yuǎn)程
                git push origin v1.0.1
        10.一次性推送全部尚未推送到遠(yuǎn)程的本地標(biāo)簽
              git push origin --tags

        11.git切換tag并提交代碼
                 tag是只讀分支,所以需要重命名為新分支
               1. fetch 線上所有的tag到本地
                    git fetch --tags
               2. 切換到你需要修復(fù)的tag
                   git checkout [tag_name]
               3. 將tag重命名為可修改的分支
                    git switch -c <new-branch-name> #可以將此版本作為tag的熱修復(fù)版本,測(cè)試沒(méi)問(wèn)題之后可以直接發(fā)布
               4. 合并代碼
                 將修改的分支合并到其他分支

17、git restore --stage <file>和git restore <file>

        1、文件在暫存區(qū)且未作修改的情況
               使用git restore --staged <file> 把文件從暫存區(qū)移動(dòng)到工作區(qū),即文件不被追蹤;
        2、文件在暫存區(qū)且已經(jīng)修改的情況
               使用git restore --staged <file> 把文件從暫存區(qū)移動(dòng)到工作區(qū),且不會(huì)撤銷修改的內(nèi)容;
              使用git restore <file> 文件仍在暫存區(qū)且會(huì)撤銷文件修改的內(nèi)容;
        3、文件在本地代碼庫(kù)已經(jīng)修改的情況
            使用git add <file> 把文件重新放到暫存區(qū),且保留文件的修改;
            使用git restore <file> 文件仍在本地代碼庫(kù)且會(huì)撤銷文件的修改;
            對(duì)于git restore <file>命令,會(huì)撤銷文件的修改,使文件恢復(fù)到暫存區(qū)或本地代碼庫(kù)(取決于文件在修改前的狀態(tài));
            對(duì)于git restore --staged <file>命令,把文件從暫存區(qū)撤回到工作區(qū),保留文件最后一次修改的內(nèi)容;

18、關(guān)于隱藏文件

         1. 顯示隱藏文件:defaults write com.apple.Finder AppleShowAllFiles YES;KillAll Finder
         2. 不顯示隱藏文件:defaults write com.apple.Finder AppleShowAllFiles NO;KillAll Finder

19、git config配置Git 設(shè)置名字和郵箱地址

          git config --global user.name "你的名字"    ;
          git config --global user.email "你的郵箱"

20、回撤文件修改

     1、在工作區(qū)修改,但并未提交到暫存區(qū)(即并沒(méi)有add)
           - 對(duì)于單個(gè)文件的撤銷修改而言,使用下面方法。
               git checkout -- 文件名

            若想撤銷工作區(qū)中所有文件的修改
                git checkout .
     2、工作區(qū)修改了之后,提交到了暫存區(qū)(即add),如何撤銷修改?這里分為兩種情況來(lái)說(shuō)吧
            -  對(duì)于該文件來(lái)說(shuō),在當(dāng)前分支上,你還沒(méi)有commit過(guò)一次。
                使用   git rm --cached 文件名         命令來(lái)放棄該文件的暫存
                 使用命令 : git status  可以看到下面的 內(nèi)容
                此時(shí) Untracked files:
                  (use "git add <file>..." to include in what will be committed)
               BravoTeacher/Classes/Login/View/
             表明:文件不被git追蹤,并且它是修改的狀態(tài),沒(méi)有提交到暫存區(qū) ,此時(shí),你用git checkout -- file是沒(méi)有用的。

因 為,前面提到過(guò),git checkout -- file是回到最近的一次commit或者add。但是,當(dāng)前你還沒(méi)有一次 commit 過(guò),并且,add也已經(jīng)撤銷了,所以Git找不到該文件在以往記錄中的存在。自然沒(méi)法用git checkout -- file。此時(shí),你可以任意的對(duì)此文件進(jìn)行修改了,想好了之后,再提交到暫存區(qū)。

              - 如果你已經(jīng)有了commit的記錄,撤銷文件
                    則先:git reset HEAD file讓該文件回到工作區(qū)的狀態(tài)。
                                  git reset dd1e013 BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift
                    然后:git chekcout -- file即可
                                git chheckout -- BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift

出自鏈接:https://blog.csdn.net/qq_40713392/article/details/98449133git

21、 查看文件修改內(nèi)容

  1.未 add 之前
         git diff xxx
         git diff ProductPurchase/Classes/Notices/Controller/CMCInstructionsInfomationViewController.m


  2.查看提交的修改內(nèi)容
        1.git log
            獲取 commitId   ff22df7a18dce7dd56f108e574db0c3af5c5eae3
         2. git show commitId 
             就獲取每次提交的代碼更改的內(nèi)容
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容