日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

项目中使用 Git 高频场景

發布時間:2023/11/28 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 项目中使用 Git 高频场景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 拉取最新主干代碼,進行功能迭代或 bug 修復

  1. 首先切換到主干:
git checkout master
  1. 然后拉取最新代碼:
git pull
  1. 基于 master 創建本地分支 xxx:
git checkout -b feature/xxx
  1. 將本地分支 xxx push 到遠程 Git 庫:
git push --set-upstream origin feature/xxx

2. 如何重命名遠程分支

例如遠程分支為:feature/xxx。

  1. 首先切換到該遠程分支對應的本地分支:
git checkout feature/xxx
  1. 拉取下最新代碼:
git pull
  1. 進行重命名:
git blame -m feature/xxx feature/login
  1. 將 feature/login 推動遠程 Git 庫:
git push --set-upstream origin feature/login
  1. 刪除老舊遠程分支:
git push origin --delete feature/xxx

3. 功能開發一半,臨時修復線上緊急 bug

這個時候,新功能開發代碼可能還沒完成,我們需要把當前的工作進度保存下,等修復 bug 后再轉過頭來繼續開發。

  1. 保存當前的工作進度,并附上注釋:
git stash save "add login func"
  1. 獲取 stash list:
git stash list
  1. 修復完 bug 后,還原之前的工作進度:
git stash pop stash@{index}

4. 如何挑揀別人的 commit

對于同一功能的不同分支,可能其他開發對該功能進行 bugfix,這個時候我們也想用在自己的分支 fix 這個 bug,注意不要腦殘貼代碼呢,敲黑板!!!

  1. 獲取其他開發者修復的 commitId:
git log 或 git reflog
  1. 挑揀別人的 commitId 到自己的分支:
git cherry-pick commitId

5. 如何回退版本

對于某一錯誤操作致使項目無法正常運行,我們需要對某一點進行還原,有點類似電腦操作系統的備份點或還原點;這個操作會使 git 指針往后退,所以在 push 的時候需要強制 push 才能成功!

  1. 獲取還原點,還原點選擇很重要,需要選擇正確版本的最新:
commitId
  1. 回退版本:
git reset commitId
  1. 查看 reset 后的代碼更改項:
git status
  1. 忽略更改項,直接強制 push:
git checkout .
git push -f

6. 如何撤銷某一個 commit

撤銷操作和回退操作唯一不同的是,撤銷的操作指針是往前的,回退的操作指針是往后的;撤銷相當于相互抵消,等于白干!

  1. 獲取需要撤銷的 commitId。
  2. 進行撤銷:
git revert commitId

7. 如何合并分支

當功能分支測試完成,一切就緒后,需要同步下 master 分支,避免不必要的沖突;這個時候有兩個選擇:

git merge origin/master
git merge --no-ff origin/master

兩者有什么區別呢?

-ff

默認情況是快進式(即 fast-forward),當合并兩個分支時,如果順著一個分支走下去可以到達另一個分支的話,那么 Git 在合并兩者時,只會簡單地把指針右移,叫做“快進”(fast-forward);這種情況如果刪除分支,則會丟失 merge 分支信息。

--no-ff

關閉 fast-forward 模式,在提交的時候,會創建一個 merge 的 commit 信息,然后合并與 master 分支 merge 的不同行為,向后看,其實最終都會將代碼合并到 master 分支,而區別僅僅只是分支上的簡潔清晰的問題,然后,向前看,也就是我們使用 reset 的時候,就會發現,不同的行為就帶來了不同的影響。

--squash

把一些不必要 commit 進行壓縮,比如說,你的 feature 在開發的時候寫的 commit 很亂,那么我們合并的時候不希望把這些歷史 commit 帶過來,于是使用 --squash 進行合并,此時文件已經同合并后一樣了,但不移動 HEAD,不提交。需要進行一次額外的 commit 來“總結”一下,然后完成最終的合并。
這里筆者強烈推薦用 --on-ff 模式,這樣合并上來的分支 commit 一目了然,便于后期的版本更迭。

總結

以上是生活随笔為你收集整理的项目中使用 Git 高频场景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。