優化代碼時忘記切換分支;切換舊分支本地代碼回到舊代碼;切換分支代碼被覆蓋


項目總體已完成。昨日進行優化和新增功能。

但是忘了切換到對應的分支后再去修改代碼,改完代碼后就不讓切換分支了。

隨后先( git add . )提交了代碼,( git commit -m "" )上傳了備注信息,再次切換
但不知道切換了分支之后,本地代碼也會變成那個分支最后提交完的狀態。

比如:切換回了20天前的分支,隨后本地的目錄、代碼也變成了20天前這個分支最后更新時的樣子。

所以當看到本地項目內的組件缺少了,代碼缺少了;直接懵逼了。

然后一頓操作猛如虎的瞎搞成功涼了。。。由此記錄一下正確的處理方法:

以及新學習到的 git命令操作

 

首先盡量要記得,先切換到對應的分支去,再進行對代碼的操作;

若遇到 a分支 內的代碼寫了一些,立刻被通知需要修改 b分支 內的代碼,但是又不想立刻提交 a分支 的代碼時:

 

 

 

可以用:( git diff )查看 a分支工作區文件的修改內容(有)

1、首先用:( git stash ) 將 a分支的工作區文件內容 放到暫存區

再次用:( git diff )查看 a分支工作區文件的修改內容(沒有)

2、隨后:切換 b分支 去修改代碼,完成后再回到 a分支

3、利用:( git stash pop ) 或(  git stash apply ) 將 a分支的工作區文件內容 取出來,恢復到暫存時的狀態

 

git stash pop ) 與 ( git stash apply )  的區別為:

用( git stash )命令之后會在stash列表中生成一個對應的信息,

使用 ( git stash apply )命令恢復,stash列表中的信息是會繼續保留的;

而使用( git stash pop )命令進行恢復,會將stash列表中的信息進行刪除。

 

進階操作:

git stash save "要添加的備注信息" ) :與 `git stash` 命令功能相同,區別是可以添加備注

git stash --all )  或( git stash save --all "要添加的備注信息" ) :可以將未被跟蹤過的和忽略的文件都儲存到暫存區

 

多次使用 ’git stash’ 命令后,棧里充滿了未提交的代碼,這時候可能對將哪個版本恢復回來困惑;

1、第一次修改暫存

 

2、 第二-第三次修改暫存

 

 

 

git stash list )可以將當前的Git棧信息打印出來,你只需要將找到對應的版本號:

 

git stash pop stash@{$num} )恢復某版本緩存的工作內容,將緩存堆棧中的對應stash刪除,並將對應修改應用到當前的工作目錄下

git stash apply stash@{$num} )恢復某版本緩存的工作內容,但不會把存儲從存儲列表中刪除,並將對應修改應用到當前的工作目錄下

 

 

上面命令出錯誤了,原因:花括號被認為是代碼塊執行標識符,若想正常使用,可用反引號  `` 進行轉義

實際可用命令為:( git stash pop stash@`{0`} )、( git stash apply stash@`{0`}

 

 

 

 

stash 暫存區內太多存儲,想要刪除如下:

git stash drop stash@{$num} ) :丟棄stash某個版本的存儲,從列表中刪除這個存儲(別忘了要使用 反引號  `` 進行轉義

 

 

git stash clear ):刪除所有緩存的stash版本

 

 

 

 

 

 

一些別人寫的 `git stash` 使用:https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html  ;  https://blog.csdn.net/tpz789/article/details/113150456

 

 

回到正軌:

如果代碼出問題了,可以使用版本回滾,將代碼回滾到某提交版本:

首先( git log )查看所有版本號,按 q 為退出

隨后( git reset  --hard 需要的版本號 )將代碼回滾到自己需要的版本號

最后( git push -f )強制提交,將雲端的版本號替換成回退后的版本號

強制推送還可寫為:( git push origin 雲端分支名 –force

 

切換了舊的分支之后,本地代碼也回到了舊分支的代碼狀態,切換則可變回
這時候將最新分支的代碼合並到舊分支里去,舊分支的代碼也會變成最新的

首先切換到舊分支( git checkout 舊分支 ),查看自己所屬分支( git branch

隨后合並最新分支的代碼( git merge 最新分支 ),將代碼變成最新的

 

 

 

將雲端某分支的代碼下拉到自己的本地分支:

首先創建或切換到本地分支:( git checkout -b 分支名 )若已存在也不需要 -b

然后將雲端的分支代碼下拉到本地:( git pull origin 分支名

本地分支與雲端分支同名

 

另外插入個知識:

克隆雲端項目代碼:( git clone 倉庫的http鏈接 )

 

 

 

`git clone`  命令用於克隆GitHub上的項目到本地目錄

先進入本地存放目錄后,使用該命令

克隆的項目永遠都是:master分支下的項目代碼

哪怕進入了別的分支。克隆的也依舊是:master分支下的項目代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM