tag查看taggit tag 冲突..._git ignorecase">
赞
踩
在了解git之前,我们先了解自己项目现在的分支管理。
在项目合作过程中,不可避免会遇到多人协作的情况,这种情况下,分支的管理就尤为重要,稍有操作不严谨,就可以会有代码覆盖,代码冲突,合错代码的问题。
根据在项目实际场景中,我们有以下建议:
项目中有master分支(受保护分支)
dev分支 (开发分支)
test分支(测试分支)
prod(产线分支)
在基于这四个分支之后,我们需要保证的是,每次产线分支在发版上线之后,打一个tag标签。
每次项目新的迭代期间,建议从prod分支新建迭代分支,开发者姓名_上线发版时间 格式为标准,每次新拉一个迭代分支,以保证项目不同版本同时开发时,迭代分支代码的独立性。及时把代码更新同步到dev。
准备提测时,需要把代码同步到测试分支,建议用自己的迭代版本分支合并代码到测试分支。
准备上线时,需要把代码同步到产线分支,建议用自己的迭代版本分支合并代码到产线分支。
整个过程中,建议保持迭代分支的代码干净,并且将代码从迭代分支代码合并到对应分支。dev/test/prod不允许相互合并。
在发版上线之后,此时prod是代码最新的分支,建议将prod代码分支同步更新到test和dev,保证test和dev是最新代码。
//直接clone master分支的代码
git clone <项目仓的地址>
//当需要clone 指定分支代码时
git clone -b <指定分支> <项目仓的地址>、
//新建一个分支,拉取某一次提交的代码版本到本地分支
git clone -b <指定分支> <项目仓的地址>
git checkout -b <分支> 远程仓库的commitId
git fetch --all
git reset --hard origin/<分支>
git pull
git status
git add .
git commit -m"提交内容"
git pull --rebase
git push 或者 git push origin <分支>
git push -f origin <分支>
git commit --no-verify -m "commit" 就可以跳过代码检查
tag的作用可以查看回溯到整个完整提交阶段,如果需要查看某个版本的完整代码。可以依靠tag来查询。
*查看tag*
git tag
*打tag*
git tag <tag名>
使用-a来为tag打备注,备注信息由-m 指定
git tag -a tagName -m "my tag"
将tag推到远程
git push origin <tag名>
删除tag
git tag -d <tag名>
删除远程tsg
git push origin :refs/tags/<tag名>
当处理合并代码的时候,要确保自己分支的代码已经提交,是干净的。
方法三参考地址git push 将本地的更新提交到远程
合并之前应该保证自己的分支已经提交最新的代码。本地分支a,远程分支dev 合并方法一:(当前分支为a) 先切换到远程需要提交的分支上去 git checkout dev 在dev的分支下合并a分支 git merge a 解决冲突之后就可以对dev进行提交了。 git pull origin dev git push origin dev 合并方法二:(当前分支为a) 先切换到远程需要提交的分支上去 git checkout dev 在dev的分支下合并a分支,在确认合并的代码(比如src文件里面的代码可以完全替换dev的src文件) git checkout a src 解决冲突。 git pull origin dev git push origin dev 合并方法三:(当前分支为a) git pull origin a git push origin a:dev
先获取提交记录的commitId
在本地新建一个临时分支
git checkout -b 分支名 远程仓库的commitId
回退的时候需要先确定你需要回退到什么版本,我们可以直接使用
git reflog
查询提交的记录,确认你回退的版本id
git reset --hard <版本id>
当回退版本之后,如果你在push之前pull的话,会让你本地的版本代码重新请求回来,这个代码应该是与你要回退的代码是冲突的。所以我们在回退版本之后需要提交的话,需要强制push
git push -f origin <分支>
git branch
//更新所有分支
git fetch
//查询所有分支
git branch -a
//查询之后退出查询分支
q
注:如果在使用中出现如下提示 .查询不到分支。我们需要更新一下分支哦
error: pathspec 'origin/test' did not match any file(s) known to git.
在多人协作情况下如果遇到在解决完a.vue页面冲突之后,a.vue的修改再也拉不下来的问题。可以考虑如下处理
强制更新
//下载远程的库的内容
git fetch --all
//把HEAD指向刚刚下载的最新的版本
git reset --hard origin/master
//查看是否忽略大小写 true为忽略。此时修改文件名大小写不会提交
git config core.ignorecase
//git配置文件修改配置core.ignorecase
git config core.ignorecase false
自己在提交代码的时候发现报错
在网上百度的方法并没有解决自己的问题,于是自己仔细看了下自己的项目,是刚新建的一个分支,没有node_modeules文件夹。抱着试一试的心态,yarn install了一下。再重新进行提交,居然就成功了。
背景为:现有分支dev和test分支。现在需要将dev的代码合并到test分支上,更新test分支。
遇到问题:test分支拉取了dev分支代码之后,但是在合并代码的时候,解决了部分冲突。后面发现test分支有部分文件与dev分支对比有丢失。此时更新dev分支,重新在test分支上merge dev时发现提示已经更新。想着可以既然强拉不下来,是否可以将test分支的代码全部删除,再重新将dev分支拉取下来,结果按照这个思路操作了之后发现也是不行,依旧是提示已经是更新过了。
此时突然想到,git合并的时候可能是根据提交记录来的,也就是说我虽然把test分支代码删除了,但是在git看来,我之前已经合并过了dev的所有提交记录,所以再怎么merge都告诉我已经更新了。
处理方法:切换到dev分支,删除当前test分支,新建一个本地分支test分支,此时这个新的test分支和刚刚删除的那个test分支是完全不同的分支,然后再在这个test分支上强推上远程test分支。操作完成之后,可以看到远程test分支和远程dev分支的代码就没有文件丢失了。
具体操作可查看下面的提交命令
//切换到dev分支
git checkout dev
git pull origin dev
git checkout -D test
git checkout -b test
git push -f origin test
Commit message格式
<type>: <subject>
type
feat:新功能(feature)
fix: 修补bug
docs:文档(documentation)
perf:优化
style:格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。