<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Git常規(guī)使用備忘錄

          共 3231字,需瀏覽 7分鐘

           ·

          2022-03-30 03:30

          git安裝

          1.下載后安裝

          以Windows系統(tǒng)為例,下載地址:http://git-scm.com/download/win 自動(dòng)下載

          2.運(yùn)行Git Bash

          git config --global user.name xxx

          git config --global user.email [email protected]

          3.生成SSH公鑰

          ssh-keygen #一路回車就行

          4.配置公鑰到gitlab

          C:\Users\admin\.ssh路徑下,記事本打開(kāi)id_rsa.pub,拷貝內(nèi)容到gitlab上配置

          5.eclipse導(dǎo)入代碼

          file -> import -> git -> Projects from Git #不需要填寫賬號(hào)密碼


          git配置

          • 配置全局用戶名和郵箱

          git config --global user.name "abc"

          git config --global user.email?"[email protected]"

          • 配置局部用戶名和郵箱

          git config user.name "abc"

          git config user.email?"[email protected]"


          gitignore

          添加.gitignore后,重新進(jìn)行版本控制

          git rm -r --cached .git add .git commit -m "update .gitignore"


          git提交變更操作

          1.拉取最新代碼

          git pull --rebase

          2.將新增/修改的文件加入暫存區(qū)

          方式1:git add 文件名

          方式2:git add -p ?#對(duì)比選擇變更的代碼

          3.提交本次變更到本地倉(cāng)庫(kù)

          git commit -m '注釋'

          4.推送本次變更到遠(yuǎn)程倉(cāng)庫(kù)

          方式1:git push origin 分支名??

          方式2:git push ?#省略[origin 分支名]參數(shù),默認(rèn)會(huì)將當(dāng)前分支提交到遠(yuǎn)程對(duì)應(yīng)分支


          git 撤銷操作

          • 未執(zhí)行add操作的撤銷

          git checkout xxx

          • 執(zhí)行add操作后,未執(zhí)行commit的撤銷

          git reset HEAD xxx

          • commit后撤銷

          git reset --soft HEAD^ // 撤銷commit回到前一個(gè)版本,不撤銷git add,不恢復(fù)變更git reset --soft HEAD~1 // 撤銷commit回到前一個(gè)版本,不撤銷git add,不恢復(fù)變更git reset --soft HEAD~2 // 撤銷commit回到前兩個(gè)版本,不撤銷git add,不恢復(fù)變更git reset --mixed HEAD^ // 撤銷commit回到前一個(gè)版本,并撤銷git add,不恢復(fù)變更git reset --hard HEAD^ // 撤銷commit回到前一個(gè)版本,撤銷git add,恢復(fù)變更
          • 強(qiáng)制回退遠(yuǎn)程版本

          git log #查看本地提交記錄,找到要回退的commit_idgit reset --hard commit_id #強(qiáng)制回退到某次提交git push -f origin 分支名 #強(qiáng)制推送到遠(yuǎn)程倉(cāng)庫(kù)
          • 回退某次commit

          使用git revert 逆向某次操作,對(duì)某次commit進(jìn)行反向操作:

          git revert -n commit_id  //逆向某次commit操作,如果有沖突解決沖突,使用git add添加修改,使用git commit提交本次修改git push


          替換上一次提交的信息

          git commit --amend -m "Fixes bug"


          撤銷當(dāng)前分支的變化

          在當(dāng)前分支修改并做了幾次提交,發(fā)現(xiàn)不應(yīng)該在當(dāng)前分支做修改,應(yīng)該新建分支修改并提交。

          1. 在當(dāng)前已修改過(guò)的分支上新建一個(gè)分支,指向當(dāng)前最新的提交,注意,這時(shí)依然停留在當(dāng)前分支。

            git branch?xxx? #xxx代表分支名稱

          2. 撤銷當(dāng)前分支到修改提交之前的狀態(tài)

            參考上面的撤銷操作

          3. 切換到新創(chuàng)建的分支

          ????git checkout?xxx??#xxx代表分支名稱

          從暫存區(qū)撤銷文件

          如果不小心把一個(gè)文件添加到暫存區(qū),可以用下面的命令撤銷。

          git rm --cached [filename]

          上面的命令不影響已經(jīng)提交的內(nèi)容。


          撤銷工作區(qū)的文件修改

          如果工作區(qū)的某個(gè)文件被改亂了,但還沒(méi)有提交,可以用git checkout命令找回本次修改之前的文件:

          git checkout -- [filename]

          它的原理是先找暫存區(qū),如果該文件有暫存的版本,則恢復(fù)該版本,否則恢復(fù)上一次提交的版本。

          注意,工作區(qū)的文件變化一旦被撤銷,就無(wú)法找回了。


          撤銷提交

          提交代碼以后,意識(shí)到這個(gè)提交有問(wèn)題,應(yīng)該撤銷掉,執(zhí)行如下命令撤銷:

          git revert HEAD

          抵消掉上一次提交導(dǎo)致的所有變化,它不會(huì)改變過(guò)去的歷史,恢復(fù)內(nèi)容到上一次提交,但是默認(rèn)會(huì)保留本次的提交記錄,同時(shí)會(huì)產(chǎn)生一次revert commit記錄。

          git revert命令還有兩個(gè)參數(shù):

          --no-edit:執(zhí)行時(shí)不打開(kāi)默認(rèn)編輯器,直接使用 Git 自動(dòng)生成的提交信息。

          --no-commit:只抵消暫存區(qū)和工作區(qū)的文件變化,不產(chǎn)生新的提交。


          代碼合并

          以下操作將master主干合并到feature分支

          1.拉取最新代碼

          在當(dāng)前分支拉取最新代碼:git pull --rebase

          如果有沖突使用以下步驟解決沖突:

          1.1 手動(dòng)解決沖突

          1.2 git add filename

          1.3 git commit –m 'xxxxx'

          1.4 git status //根據(jù)提示繼續(xù)操作

          2.切換到master主干

          git checkout master

          git pull --rebase

          3.切回feature分支

          git checkout feature-xxx

          4.合并master代碼

          git merge master

          有沖突手動(dòng)解決沖突,解決辦法同上

          5.推送到遠(yuǎn)程倉(cāng)庫(kù)

          git push


          hotfix操作

          步驟:

          1.拉取develop分支代碼到最新

          2.拉取master分支代碼到最新

          3.git flow hotfix start 臨時(shí)分支名

          4.緊急修改操作

          5.git add

          6.git commit

          7.git flow hotfix finish 臨時(shí)分支名

          8.編輯提交的信息

          9.分別提交到master和develop


          feature分支操作

          1. 開(kāi)始一個(gè)新功能:

          git flow feature start xxxx

          2. 提交這個(gè)功能到遠(yuǎn)程庫(kù):

          git flow feature publish xxxx

          3. 完成功能,合并到develop:

          git flow feature finish xxxx

          4. 記得刪除遠(yuǎn)程倉(cāng)庫(kù)里的分支:

          git push origin :xxxx


          A分支的部分提交應(yīng)用到B分支

          git cherry-pick #commitHash來(lái)自git log查看

          使用步驟:

          1.在A分支使用git log查看需要用到的commit_id,例如abc

          2.切換到B分支,使用git cherry-pick abc

          cherry-pick也支持將多個(gè)部分提交應(yīng)用到B分支,例如:

          git cherry-pick?????

          但是要保證先后順序,即提交commitHash1必須早于提交commitHash2

          也支持區(qū)間,例如:

          git cherry-pick??

          但是要保證先后順序,即提交commitHash1必須早于提交commitHash2

          若過(guò)程中發(fā)生沖突,解決代碼沖突后,第一步將修改的文件重新加入暫存區(qū)(git add .),第二步使用下面的命令,讓Cherry pick過(guò)程繼續(xù)執(zhí)行:

          git cherry-pick --continue

          當(dāng)然也可以在發(fā)生代碼沖突后,放棄合并,回到操作前的樣子,執(zhí)行命令:

          git cherry-pick --abort?



          學(xué)之多,而后知之少!朋友們點(diǎn)【在看】是我持續(xù)更新的最大動(dòng)力!

          瀏覽 65
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩无码高清免费 | 粉嫩小泬无遮挡BBBB | 欧美午夜成人视频 | 大香蕉 久久 | 四季AV之日韩人妻无码 |