當前位置:首頁 » 網頁前端 » git如何在web合並文件夾
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

git如何在web合並文件夾

發布時間: 2022-09-26 00:12:28

⑴ git如何將完成代碼的本地分支合並到遠程指定分支上

先把test分支的代碼push到遠程上,然後切換到develop3.0分支,在develop分支下進行merge操作,實現合並。

⑵ git如何合並只有兩個commit到一個

用rebase -i

比如下圖的commit 歷史,想要把 "Second change" 和 "Third change" 這兩個commit合並到一起

對比原始git log信息,你就可以發現兩個commit被合成一個了。


同理,你可以將任意多個commit合並成一個 (第一個commit保持 pick, 後續commit改成 squash即可)

⑶ webstorm怎麼和git關聯

對於git的使用,大家的使用方式均有不同,最王道的方式非命令行莫屬,基於git的GUI軟體還是很多的,大家可自行研究使用。之前使用eclipse svn插件去操作版本管理,還是很便捷的一件事情。而今用慣了webstorm,當然裡面也集成了對svn的支持,只是最近一直在用git,所以想試著用webstorm中的git集成工具進行版本管理。當然之前都是以敲命令行的方式去做,達到一個熟練度,速度還是很可觀的。通過這篇文章,主要講述如何使用webstorm中的git工具進行更加快速高效的版本管理。
1. 先說git理論
webstorm提供了git不少試圖,下面列舉其一:
我們在上面看到了git面板的很多選項,想要弄清楚各個選項具體要做什麼,常用且常規的git理論知識及操作經驗不可少。
我們先看對git操作的簡單分類,如下——
遠程倉庫類:git clone/remote/pull/push/rebase/fetch
分支類(包括tag):git branch/tag/checkout/stash
信息查閱:git status/log/diff
本地常規操作:git add/commit/rm/merge/reset
這里僅僅是我個人的分類方式,每個人都對它有不同的分類,歡迎補充。
需要強調的是,你需要對上述命令關鍵詞都做了什麼事兒、應用於何場景,需要有清晰的把握,如果你不知,不放看看文章末尾的參考文章。多說一句,一定要結合工作區、暫存區、版本庫的三者關系去理解。
結合上面給出的圖片,我們可以看到,webstorm中的git工具無非是這些命令行的可視化抽象,我們來看看怎麼玩兒好它。
2. 使用webstorm中的git
2.1 右鍵菜單
先來最熟知的右鍵操作,分為兩類:文件夾(或者工程)右鍵和文件右鍵,先看看文件夾右鍵的效果——
再看看文件右鍵——
會發現兩者的差異僅僅在於文件右鍵的視圖多了一些diff操作(或者可以聯想到git diff命令)。我們看看各個選項的含義——
Commit File... 提交至本地版本庫
Add 添加進緩存
Show Current Revision 顯示當前文件的最新版本信息,如下圖——
Compare with the Same Repository Version 與當前版本(的文件)做比較,可以理解為與最新版本比較,也就是可以比較本地工作區和本地版本庫的差異(也記住,比較視圖中,右側永遠是最新的那個版本內容)——
Compare with Latest Repository Version 與上一版本(的文件)做比較,可以理解為當前版本與本地工作區所做的更改共同來與上一版本比較
Compare with... 與任意歷史版本(的文件)做比較
Compare with Branch... 與任意分支(的文件)做比較,包括本地分支及遠程分支
Show History 展示關聯本文件(或者文件夾中的所有文件)提交信息歷史,我們可以看到,歷史提交信息面板出現於下方Version Control面板中——
Show History for Selection 對指定的代碼塊,顯示歷史版本信息
(連接第二個圖)-------->>>>>>
Revert... 還原代碼,要注意與reset的區分,這里僅僅是將本地工作區的代碼還原為本地倉庫中的最新版本的代碼
Repository > 倉庫二級導航選項,即相關倉庫類的操作
要注意,有些操作是針對某單個文件操作的,每當操作某個文件夾時(或者某個工程時),會以選中的文件的集合為單位展開操作文件,並進行操作。
我們繼續看看Respository的二級導航——
Branches 顯示左右分支,包括本地分支和遠程分支
進而對各個分支能夠進行更多的操作,如下圖所示——
或者
checkout 檢出至本地工作區,此時本地已經檢出過
checkout as new local branch 檢出至本地工作區,並創建新分支
compare 兩個分支進行比較,比如,我想拿當前的test分支與本地的master分支進行比較,會看到——
會看到,會把各自提交的變更內容一一列表出來。要注意,這里不包含本地所進行的更改尚未提交到本地倉庫的部分,即沒有commit的部分。
merge 進行合並操作,以比較版本合入當前版本中,merge的過程當中,可能會有沖突(要記住,多人修改同一處代碼時,才可出現沖突),稍候介紹怎麼處理沖突
delete 刪除當前分支
OK,branches面板介紹完畢,當然還可以在最右下角同樣有branches面板操作入口,如下——
繼續介紹,倉庫二級導航——
Tag 打tag
Merge Changes 合並操作
Stash Changes stash操作,具體用法,你若不知,可以參考一下下面的文章
... ...
這里省略剩下的那些操作,關於merge、stash、reset的一些操作細節,需要先懂得這三個命令的相關參數的具體含義,再去操作就很好理解了。
OK,關於右鍵菜單就介紹到這兒了,可以看到它能做的事兒——
1. 非常方便的對對比文件或者文件夾的差異,試圖直觀明了
2. 方便做常規的add/commit/revert操作等
3. 方便操作版本庫的相關管理,如fetch/merge/push/rebase等等
2.1 Version Control面板
OK,接下來,介紹一下Version Control面板——
首先,來介紹對應Local Changes
這里也就是工作區的更改與當前版本差異的diff文件列表,Unversioned Files也就是代表沒有加入到版本管理的文件列表,需要進行add操作,添加進緩存區中;Default中的文件是代表版本管理中經過本地更改的文件,需要進行add 和commit操作,將更改的文件添加入緩存區中並提交到本地版本庫中。要知曉git add和git commit做了什麼事兒
git add:暫存區的目錄樹被更新,同時工作區修改(或新增)的文件內容被寫入到對象庫中的一個新的對象中,而該對象的ID 被記錄在暫存區的文件索引中。
git commit:暫存區的目錄樹寫到版本庫(對象庫)中,對應的分支會做相應的更新。即HEAD指向的目錄樹就是提交時暫存區的目錄樹
可以對新增的文件進行add 操作,如下——
其餘選項——
Revert:同上述講述,即還原本地變更
Move to Another Changelist:轉入其他變更標記,分門別類,好管理
Show Diff:同上述講述
Jump to Source:直接打開變更源文件
Ignore:加入.gitnore文件中
Create Patch:打變更補丁
Shelve Changes:與stash功能略相近,請參看後邊文章
緊接著,我們最常用的操作就是Commit Changes了——
可以單獨去commit,當然也可以commit和push 一起進行。
可以看出來,這里的Local Changes也就起到了"git status"命令的作用。
OK,繼續介紹log面板——
選中相應分支,右鍵,我們看到——
我們看到,常規的選項,在上述中已提及過,在此就不在啰嗦,這里的Cherry-Pick,指的是將選中版本變更的文件內容merge進當前工作區中,我們會看到,同樣會出現沖突的情況——
當我們選中merge操作時,看到如下圖——
雖然機器解決的沖突不是令人很滿意,不過你可以再merge result面板中,直接去解決沖突,直接看到歷史版本,比較直觀。
解決沖突後,也就讓需要再去做add和commit操作,至於怎麼使用,在上述已提及。
接下來是console面板,它用於記錄所有你通過webstorm中git操作的命令,如下——
看一看到,這里的命令行,也就是常規的我們熟知的命令行。
Version Control面板介紹到這兒。可以看到,我們使用Version Control面板,我們可以做的事兒——
1. 可以隨時看到本地變更的文件列表和內容,方便提交及還原
2. 看到所有分支(自己與小夥伴兒的)動態,及對應的變更內容,方便對比文件,方便追查問題
3. 可以reset或者merge任意版本
4. 同樣可以看到任意操作的命令行,利於學習git命令行
3. 優勢
整體而言,個人覺得webstorm操作git起來,還是很方便,大致分成三類——
1. 對比類操作compare
2. 倉庫類操作repository
3. 本地操作local changes
個人覺得也是一個非常不錯的學習脈絡,整體來看,其最大的優勢還是在清晰明了的視圖上。
4. 總結
至此,對webstorm如何操作git的介紹就介紹完畢,我在這兒,舉一個最常規的git操作場景,大家可以回顧著操作試試——
常規合作開發(同一分支開發 / 不同分支開發): add and commit --> fetch —> compare —> merge (and resolve conflicts) —> push
從接觸git,到使用git命令行,到理解git常規工作原理,再到深入使用webstorm操作git,整體而言,需要做到——
1. 要熟知git常用的理論知識
2. 要熟悉命令行,如果你脫離了webstorm這樣的IDE,同樣能夠進行git版本管理
3. 好好利用IDE帶來的視圖清晰這一個優勢,更快的查詢問題、解決問題
OK,至此,webstorm的研究暫時告一段落,最近搞搞其他的技術研究......

⑷ 如何解決Git中的合並沖突

1、git merge沖突了,根據提示找到沖突的文件,解決沖突
如果文件有沖突,那麼會有類似的標記
2、修改完之後,執行git add 沖突文件名
3、git commit
注意:沒有-m選項
進去類似於vim的操作界面,把conflict相關的行刪除掉
4、直接push就可以了,因為剛剛已經執行過相關merge操作了

⑸ git 將 master合並到本地分支的問題

注冊GitHub後你就會有0.3G的免費空間,不過只能創建公開項目,這也滿足代碼分享的目的,我最喜歡的倒是它的代碼展示方式,可以直接瀏覽你的代碼,代碼是經過高亮、添加行號處理過的,十分漂亮,體驗一流,比如這個Webpy託管的地方。而作為想要了解你代碼的人,可以選擇直接在線瀏覽自己感興趣的,也可以直接下載壓縮包,或者直接使用Git clone到本地。
因為GitHub是基於Git版本控制系統,所以你上傳修改代碼什麼的,都需要使用Git工具。我這里主要是用來分享和展示代碼,所以不想在版本控制方面做過多的闡述,下面就簡單講解一下怎麼在GitHub上新建一個項目,還有把自己的代碼傳上去。下面的前提是你已經注冊了GitHub和下載安裝了Git——Git下載、Windows版本下載。
上傳分享代碼
1.在GitHub上建立項目
登錄GitHub後,你可以在右邊靠中那裡找到一個按鈕「New Repository」,點擊過後,填入項目名稱、說明和網址過後就可以創建了,然後會出現一個提示頁面,記下類似[email protected]:XXX/XXX.git的地址,這個就是你這個項目的地址了。
2.配置Git以及上傳代碼
安裝Git成功後,如果是Windows下,選擇Git Bash,在命令行中完成一切,可能開始有點麻煩,不過就那幾條命令行,用幾次就記住啦。首先初始設置Git:
1 git config --global user.name "Your Real Name" 2 git config --global user.email [email protected]

然後開始進行最麻煩的一步了,你需要上傳文件到GitHub的Git系統上,得需要一個SSH密匙來認證,下面就開始生成密鑰和提交密鑰。打開Git Bash,創建SSH key:
1 ssh-keygen -C '[email protected]' -t rsa

然後要你輸入SSH密匙的存放位置,可以不管,直接回車使用默認路徑。再輸入你想要的密碼,SSH key就生成了。現在你需要將這個Key提交到GitHub,首先打開Key保存的位置,裡面會有三個文件,找到id_rsa.pub,用文本編輯器打開,復制裡面的全部字元。到GitHub,在右上方工具欄里找到Account Settings。在這個頁面上有一個SSH Public Keys標簽,選擇Add another public key。Title可以隨便填一個,Key就粘貼剛才的字元,提交。
完成這些工作後,就可以上傳自己的代碼了。找到自己要分享上傳的代碼文件夾,右擊選擇Git Bash,或者在Git Bash中進入這個文件夾。建立一個倉庫:
1 git init

選擇要添加進倉庫的文件:
1 git add .

一般如果你想分享這個文件夾里的所有代碼,就在 add後面加「.」,上面的例子就是這樣,如果傳指定的,只需要把「.」改為文件名即可,現在只是選擇了要加入倉庫的文件,下面才是添加進入倉庫:
1 git commit -m 'Test'

-m後面跟一個參數,表示說明,將代碼提交到GitHub後,將會在代碼文件信息上顯示這個說明,如下圖標記的地方。

⑹ 如何用 Git 合並兩個庫

C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [master]> git branch –a # 查看所有分支
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [master]> git remote add coretea
m git://github.com/ghorsey/SharpOAuth2.git #加入主項目地址,以便跟上更新
C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [master]> git fetch coreteam
remote: Counting objects: 297, done. #獲取主項目更新
remote: Compressing objects: 100% (108/108), done.
remote: Total 227 (delta 147), reused 165 (delta 85)Receiving objects: 73% (166
Receiving objects: 74% (168/227), 60.00 KiB | 10 KiB/s
Receiving objects: 100% (227/227), 74.24 KiB | 10 KiB/s, done.
Resolving deltas: 100% (147/147), completed with 48 local objects.
From git://github.com/ghorsey/SharpOAuth2
* [new branch] master -> coreteam/master

#建立主項目作為自己的分支
C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [master]> git checkout -b coreteam coreteam/master
Branch coreteam set up to track remote branch master from coreteam.
Switched to a new branch 'coreteam'
C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [coreteam]> git branch -a
* coreteam
master
remotes/coreteam/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

#現在你可以追蹤最新的更新並把它們合並到你自己的分支里

# 切換到master分支
C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [coreteam]> git checkout master
Switched to branch 'master'

將 coreteam/master 合並到本地的 Master 分支

C:\Users\geffzhang\Documents\GitHub\SharpOAuth2 [master]> git merge coreteam/master
Auto-merging README.md
Merge made by the 'recursive' strategy.
README => README.md | 30 +-
.../Provider/Mvc/SharpOAuth2.Provider.Mvc.dll | Bin 5120 -> 5120 bytes
.../Provider/Mvc/SharpOAuth2.Provider.Mvc.pdb | Bin 11776 -> 11776 bytes
...h2.Provider.ResourceAuthorizationHttpMole.dll | Bin 8704 -> 8704 bytes
...h2.Provider.ResourceAuthorizationHttpMole.pdb | Bin 17920 -> 17920 bytes
code/deploy/Provider/SharpOAuth2.Framework.dll | Bin 9216 -> 9216 bytes
code/deploy/Provider/SharpOAuth2.Framework.pdb | Bin 11776 -> 11776 bytes
.../SharpOAuth2.Provider.Globalization.dll | Bin 13312 -> 13312 bytes
.../SharpOAuth2.Provider.Globalization.pdb | Bin 28160 -> 28160 bytes
code/deploy/Provider/SharpOAuth2.Provider.dll | Bin 36352 -> 37888 bytes
code/deploy/Provider/SharpOAuth2.Provider.pdb | Bin 130560 -> 136704 bytes

code/src/RESTSample/Properties/AssemblyInfo.cs | 4 +-
code/src/SharpOAuth2.Client/AccessToken.cs | 1 +
.../SharpOAuth2.Client/Properties/AssemblyInfo.cs | 4 +-
.../Properties/AssemblyInfo.cs | 4 +-
code/src/SharpOAuth2.Framework/IToken.cs | 2 +-
.../Properties/AssemblyInfo.cs | 4 +-
.../Properties/AssemblyInfo.cs | 4 +-
.../src/SharpOAuth2.Mvc/Properties/AssemblyInfo.cs | 4 +-
.../OAuthAuthorizeMole.cs | 7 +-
.../Properties/AssemblyInfo.cs | 4 +-
.../Properties/AssemblyInfo.cs | 4 +-
.../SharpOAuth2.Tests/Properties/AssemblyInfo.cs | 4 +-
.../AuthorizationProviderTests.cs | 364 ++++++++++-----------
.../Processor/ImplicitFlowProcessorTests.cs | 2 +-
.../ResourceEndpoint/ResourceProviderTests.cs | 2 +-
.../Processors/.cs | 4 +-
.../AuthorizationEndpoint/AuthorizationContext.cs | 2 +-
.../AuthorizationEndpoint/IAuthorizationContext.cs | 2 +-
.../Processor/AuthorizationCodeProcessor.cs | 2 +-
.../Processor/ImplicitFlowProcessor.cs | 2 +-
code/src/SharpOAuth2/Domain/AccessTokenBase.cs | 93 +++---
.../SharpOAuth2/Domain/AuthorizationGrantBase.cs | 24 +-
code/src/SharpOAuth2/Domain/IAuthorizationGrant.cs | 12 +
.../Fluent/FluentAuthorizationContext.cs | 188 +++++------
code/src/SharpOAuth2/Fluent/FluentTokenContext.cs | 146 ++++-----
code/src/SharpOAuth2/Framework/ErrorResponse.cs | 22 ++
code/src/SharpOAuth2/Properties/AssemblyInfo.cs | 8 +-
.../ResourceEndpoint/Processors/BearerProcessor.cs | 2 +-
.../ResourceEndpoint/ResourceContext.cs | 52 +++
.../ResourceEndpoint/ResourceProvider.cs | 73 +++--
.../Services/IAuthorizationGrantService.cs | 16 +-
code/src/SharpOAuth2/Services/ITokenService.cs | 22 +-
code/src/SharpOAuth2/SharpOAuth2.Provider.csproj | 1 +
.../Processor/AuthenticationCodeProcessor.cs | 44 +--
.../AuthorizationGrant.cs | 3 +-
.../Properties/AssemblyInfo.cs | 4 +-
.../Service/AuthorizationGrantService.cs | 96 +++---
.../Service/ClientService.cs | 108 +++---
.../Service/TokenService.cs | 178 +++++-----
code/src/clean.pyc | Bin 1351 -> 1360 bytes
51 files changed, 838 insertions(+), 710 deletions(-)
rename README => README.md (73%)
create mode 100644 code/src/SharpOAuth2/Domain/IAuthorizationGrant.cs

⑺ git如何合並兩個分支代碼

加入有兩個分支,分別為:branch1,main,需要將branch1合並到main:切換到main分支,合並branch1分支

git checkout main
git merge branch1

⑻ git 合並時只合並項目下某個文件夾,應該怎麼設置

文件夾名有規律可循嗎?比如按時間之類排序的。。。。

如何配置WinMerge作為Git的合並工具

首先安裝好WinMerge,這一步沒什麼好說的,就是點擊下一步就好。記得要點那個把WinMerge添加到環境變數里的選項,如果沒選的話下一步需要修改profile文件。
然後配置Git Bash的PATH變數,之前很多教程都在說這個PATH但是都不甚詳細。我摸索了一下(怪我自己Linux知識不熟),直接上代碼大家應該能看明白。
export PATH="$PATH:/c/Program Files/WinMerge/"。
不過還有一個問題就是上面那句命令只能在不關閉bash前生效,可以去../Git/etc/裡面修改profile文件,在最後一行加上上面那行命令就行。
第三步需要下載其他文件,由於我的Git版本是2.4.5,mergetool裡面並沒有添加對winmerge的支持,但是自從2.5.0之後Git添加了對winmerge的支持,所以我就從Git在github的主頁上下載了最新的源碼,從源碼的/mergetool/目錄下面了一份winmerge文件到../Git/mingw32/libexec/git-core/mergetool/下面。如果是Git2.x一下的版本目錄應該是../Git/libexec/git-core/mergetool/。
完成這三步之後就可以嘗試一下了,在bash裡面輸入
git mergetool --tool-help。
這時候bash就會列出能夠使用的工具,如果winmerge在可用的那一欄里,就標志著可以用了。這時候還得讓git知道你要用winmerge了。還需要在bash裡面輸入以下命令:
git config --global merge.tool winmerge。

⑽ Git怎樣撤銷一次分支的合並Merge

Git撤銷一次分支的合並Merge

方法一,reset 到 merge 前的版本,然後再重做接下來的操作,要求每個合作者都曉得怎麼將本地的 HEAD
$ git checkout 【行merge操作時所在的分支】
$ git reset --hard 【merge前的版本號】

方法二,當 merge 以後還有別的操作和改動時,git 正好也有辦法能撤銷 merge,用 git revert:
$ git revert -m 【要撤銷的那條merge線的編號,從1開始計算】 【merge前的版本號】
Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
1 files changed, 0 insertions(+), 2 deletions(-)

這樣會創建新的 commit 來抵消對應的 merge 操作,而且以後 git merge 【那個編號所代表的分支】會提示:
Already up-to-date.

因為使用方法二會讓 git 誤以為這個分支的東西都是咱們不想要的。

方法三,怎麼撤銷方法二:
$ git revert 【方法二撤銷merge時提交的commit的版本號,這里是88edd6d】

Finished one revert.
[master 268e243] Revert "Revert "Merge branch 'jk/post-checkout'""
1 files changed, 2 insertions(+), 0 deletions(-)

這樣就行了,可以正常 merge 了,不過可能會有很多沖突。
$ git merge jk/post-checkout
Auto-merging test.txt
Merge made by recursive.
test.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

最後,覺得頂上那些都麻煩。前端天天用 WebStorm 寫代碼的看過來: WebStorm 右鍵點擊項目文件或文件夾,有一個:
Local History -> ShowHistory
點開後出現一個窗口,可以看到所有的本地改動。找到合適的那份,按左上角那個:
Revert
按鈕,也就是個紫色的彎曲的小箭頭就回去了。