這裡蒐索程式師資訊,查找有用的技術資料
当前位置:首页 » 网页前端 » 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”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似git@github.com: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 you@email.address

然后开始进行最麻烦的一步了,你需要上传文件到GitHub的Git系统上,得需要一个SSH密匙来认证,下面就开始生成密钥和提交密钥。打开Git Bash,创建SSH key:
1 ssh-keygen -C 'your@email.address' -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
按钮,也就是个紫色的弯曲的小箭头就回去了。