更新遠程倉庫地址 git remote set -url --push 拉取遠程倉庫 git pull 推送本地倉庫到遠" />

精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Git常用的超級實用命令

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-10-09 17:19 ? 次閱讀

Git作為最流行的代碼版本控制工具,基本上已經成為了程序員的一個標配技能。無論使用GitHub,GitLib,Gitee等進行代碼托管,均基于Git。下面聊一聊開發人員必會的幾個Git技巧和團隊協作的一些Git工作流。

1 Git 常用的超級實用命令

1.1 與倉庫相關的操作

克隆代碼倉庫到本地,開發必用

git clone  < url >

查看本地倉庫配置了那些對應的遠程倉庫。

git remote -v

添加遠程倉庫

git remote add < name >< url >

更新遠程倉庫地址

git remote set -url --push < name >< newUrl >

拉取遠程倉庫

git pull < remoteName >< localBranchName >

推送本地倉庫到遠程倉庫,默認是當前所在branch

git push < remoteName >< localBranchName >

1.2 分支的創建切換等相關操作

查看本地分支/所有分支

git branch  / git branch -a

查看遠程分支

git branch -r

創建本地分支

git branch < name >

本地創建分支并和遠程分支關聯,再切換到該分支。

git checkout -b < 本地分支名 > < 遠程倉庫名 >/< 遠程分支名 >
git branch -b < 本地分支名 > < 遠程倉庫名 >/< 遠程分支名 >

根據遠程分支創建本地分支,但是不會切換到新分支,需要手動checkout

git fetch < 遠程倉庫名 > < 遠程分支名 >:< 本地分支名 >

創建新分支并立刻切換到改分支

git checkout -b < name >

創建遠程分支:

git push origin < name >

刪除遠程分支

git push origin:heads/< name >
也可以push一個空的本地分支,那么也將刪除遠程分支

修改分支名

git branch -m < oldName > < newName >
git branch -m < newName >  (修改當前BranchName)

1.3 Tag相關

查看Tag

git tag

創建Tag

git tag < name >

刪除Tag

git tag -d < name >

查看遠程Tag

git tag -r

push Tag到遠程倉庫

git push origin < tagName >

刪除遠程Tag

git push origin:refs/tags/< tagName >

1.4 git 提交相關

先add 然后在提交,不過add大多時候利用開發工具來做比較方便。

git add newfile.txt 
git commit -m "the commit message"

reset相關的命令可以回滾剛才的add或者提交,重設當前分支

git reset [--hard|soft|mixed] [< commit >或HEAD]

最后一個參數默認為HEAD,HEAD~2表示上上一個版本,也可以是某一個commit id處。

常用的三個參數hard/mixed/spft

--hard 將之前的提交全部刪除stage區清空,

--mixed 將之前的提交刪除,但是將改動移動到stage區(也就是index中)。

--soft 提交不改變變,將HEAD指向某commit id,有點像checkout

1.5 合并

合并其他分支到當前的分支

git merge

合并分支fixesenhancements在當前分支的頂部

git merge fixes enhancements

將一個commit 合并到當前分支

git cherry-pick < commit id >

合并幾個連續的commit

git rebase -i 4e08572

下面給出一組Rebase 的詳細示例

(1)windows 下,輸入上述命令之后, 輸入i 進入編輯窗口,更改rebase策略。詳細解釋都有提示,只需根據提示輸入即可。

圖片

(2)選好rebase策略之后按Esc推出 輸入":x" 執行 剛才的rebase操作,然后會看到修改提交的信息界面

圖片

(3)修改提交信息,按Esc退出,并輸入 ":x" 執行rebase操作

然后看到rebase成功

圖片

e

以上就是一個簡單的rebase操作。

1.6 log & show

查看最近的5次提交,按Q就直接退出。

git log -5

使用ASCII圖形表示分支合并歷史

git log --graph

顯示最近5次提交的詳細內容

git show -5

2 Git Work Flow

2.1 Centralized Workflow

Centralized WorkFlow 這種模式對比熟悉SVN的開發人員比較容易適應。在Git 遠程倉庫有一個主分支,開發人員也在自己的本地克隆了一個完全一樣的分支,開發人員可以在本地的分支上隨意的進行代碼編寫,測試。當完成當前開發工作之后,可以直接push到遠程主分支上。就算是有沖突也可以快速的解決。

中心倉庫式工作流對于小型開發團隊比較適用,人員少,改動也就相對比較少,出現沖突的幾率也要少很多。就算是有沖突,合并也不會有太大問題。顯然這種工作方式卻不適合大型團隊,幾個開發組同時開發維護一個項目,這樣代碼會非常混亂,每個人的提交都會影響其他組開發的工作。如果再有不同組的開發任務上線時間點不一樣,那么就是一場災難。

2.2 Feature Branch Workflow

基于Feature Branch WorkFlow 的Git工作流,其基于一個中心倉庫,主分支(也可以是其他的生產代碼分支)代表了項目歷史。每次有新的開發任務的時候,基于主分支新創建一個Feature分支,和當前任務相關的代碼都提交的這個Feature分支。

當開發工作進行到一定階段,就可以提一個Pull Request代主分支,這個時候就可以讓同事去Review自己的代碼了。此時Review階段可能會有一些小問題,或者同事給出了更好的建議,我們都可以針對性的修改代碼。

最后讓測試等工作都完成之后,就可以將Feature 分支合并到主分支上。最終測試完成之后就可以部署到生產上面。之后Feature分支可以視情況刪除,或者保留一段時間之后再刪除。

2.3 GitFlow WorkFlow

GitFlow WorkFlow是一種比較經典的工作模式。

其主要有如下的一些分支協作。

Main/Master Branch (主分支):維護著項目的歷史記錄,會記錄每一次上線的標簽,并且可以看到每一次上線的一些新特性等。

Develop Branch (開發分支):基于主分支,主要是為了下一次上線所使用的開發分支,可以接受Feature分支的Pull Request。當所有的新特性都已經合并完畢,那么就創建。

Release Branch (部署分支):當開發分支已經合并了足夠的特性分支代碼之后,會創建一個Release分支。此時Release分支不會接受任何Feature分支的Pull Request,僅接受一些Bug fix的Pull Request。Release分支部署上線之后,測試全部通過后會將代碼合并到Develop 分支和主分支。

Feature Branch (特性分支):一般會基于開發分支創建出一條針對某個功能的分支,開發人員會基于這條分支進行開發和單元測試的工作,當本Feature開發完成之后。會將代碼合并到Develop分支上,之后可以選擇適時刪除次分支。

Hotfix Branch (修補分支):針對與線上出現的緊急問題,從主分支,也就是上一次上線的標簽出創建一個Hotfix 分支。當問題解決之后,可能會有一次緊急的上線來解決之前發現的問題。當問題解決之后,會將代碼合并到主分支,和開發分支。以便下一次上線也會包含本次的緊急修復代碼。

Support Branch (備用支撐分支):這個分支的應用比較靈活,有時候如果項目上線的時候基于各種可能性, (比如某個依賴的系統上線失敗,或者其他不必要的特性上線失敗) 可能會需要準備多個版本,那么Support Branch 就可以作為一條備用分支來使用。這個分支可以根據項目的實際情況來看是否需要使用!

各個Branch的示例關系可以看下圖

圖片

我們也可以使用git flow 的一些命令來使用這個工作模式,會有一些既有的命令,使用起來會比較規范,但是也會有一定復雜,項目中可以根據實際情況使用!

圖片

git flow 相關的一些命令

圖片

2.4 Forking Workflow

Forking WorkFlow 相對與上面的幾種協同工作方式有較大的不同。

其主要 公共遠程倉庫私人遠程倉庫 ,和 本地倉庫

開發人員一般會從公共遠程倉庫Fork一份完全一樣的代碼倉庫到自己的 私人遠程倉庫 。對于私人遠程倉庫來說,開發人員是擁有者,擁有所有的權限。開發人員可以在本地倉庫提交之后隨時push到自己的私人遠程倉庫,隨時進行Revert、Reset、Rebase等操作。

公共遠程倉庫為項目的組織官方倉庫,保留有不同的分支,以及標簽等。可以由私人遠程倉庫提交Pull Request到公共遠程倉庫的某個分支,待同事或者一些Owner Review過之后,就可以合并到公共倉庫。

Forking WorkFlow 也是比較推薦的一種方式,開發人員push代碼之后,可以隨時在自己的提交基礎之上進行Rebase操作,合并之前的許多提交,這樣提交歷史比較整潔,同時Review也比較方便。

3 Git 常見問題及處理方法以及建議。

  1. 使用Github合并PullRequest的時候,如果代碼有沖突,通過網頁解決沖突合并之后。Github會進行 雙向合并
  2. 關于Git協作,可以考慮Git Flow與Feature flow 還有Forking flow結合使用,Forking Flow有利于整理提交歷史,Feature branch對于代碼的管理比較友善。
  3. 本地的代碼跑完一次測試的時候就可以提交一版,然后在需要push的時候在rebase合并一次。盡量完善自己的commit信息,寫好每一次提交記錄。
  4. 如果merge有問題可以使用git merge --abort 解除merge, 然后再重新合并。
  5. 多使用Git命令行來進行日常的提交等工作,有助于更好的理解Git的工作原理,這樣在不同的IDE上都能比較容易的使用Git插件了。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    116

    文章

    3776

    瀏覽量

    80848
  • 命令
    +關注

    關注

    5

    文章

    678

    瀏覽量

    21984
  • 代碼
    +關注

    關注

    30

    文章

    4746

    瀏覽量

    68348
  • Git
    Git
    +關注

    關注

    0

    文章

    196

    瀏覽量

    15735
收藏 人收藏

    評論

    相關推薦

    Git常用命令總結

    在之前的文章中,我們討論了一些初學者必備的 Git 命令。然而,這些命令僅僅觸及了 Git 功能的皮毛。
    發表于 07-21 10:30 ?286次閱讀

    Git 常用命令大全

    不提交在倉庫根目錄下創建名稱為“.gitignore”的文件,寫入不需要的文件夾名或文件,每個元素占一行即可,如targetbin*.dbGit 常用命令git branch 查看本地所有分支git
    發表于 10-11 17:23

    windowsxp常用命令

    windowsxp常用命令   winver---------檢查windows版本 wmimgmt.msc----打開windows管理體系結構(wmi) wupdmgr-------
    發表于 01-10 09:05 ?1272次閱讀

    Ubuntu常用命令大全

    Ubuntu常用命令大全,包括常用管理目錄,系統命令,硬盤相關,內存相關,查看進程等命令
    發表于 01-06 11:16 ?0次下載

    vim常用命令

    vim常用命令
    發表于 01-08 15:59 ?3次下載

    redis常用命令總結

    本文是對redis常用命令總結。
    發表于 02-09 11:25 ?1594次閱讀

    Linux常用命令的全拼整理

    本文整理了常用命令的全拼,好像混進了什么奇怪的東西。
    的頭像 發表于 10-10 17:19 ?4646次閱讀

    linux常用命令手冊

    linux常用命令手冊免費下載。
    發表于 06-01 14:59 ?68次下載

    Memcache系統常用命令講解

    Memcache系統常用命令講解(無線電源技術商業計劃書)-該文檔為Memcache系統常用命令講解文檔,是一份還算不錯的參考文檔,感興趣的可以下載看看,,,,,,,,,,,,,,,,
    發表于 09-28 11:27 ?5次下載
    Memcache系統<b class='flag-5'>常用命令</b>講解

    linux常用命令大全

    linux常用命令大全,一些常用命令都可以找到
    發表于 03-03 09:20 ?0次下載

    DOS系統常用命令

    介紹了DOS系統的常用命令
    發表于 03-21 14:59 ?0次下載

    Linux常用命令

    Linux常用命令
    的頭像 發表于 01-12 11:19 ?1118次閱讀

    Linux常用命令手冊分享

    linux常用命令合集
    發表于 04-26 11:46 ?1次下載

    git命令和參數

    ? ? 不知道大家平時都是怎么去學習git的,要記憶那么多的命令和參數,我個人是不推薦死記硬背的,以往經驗證明卷的越瘋狂忘的也越快! 其實簡單的理解工作原理和熟練運用少部分常用命令,日常開發問題不大
    的頭像 發表于 05-31 14:22 ?538次閱讀

    詳解kubectl常用命令

    詳解kubectl常用命令
    的頭像 發表于 11-05 15:39 ?118次閱讀
    詳解kubectl<b class='flag-5'>常用命令</b>