git svn 代码管理应该注意的事项
从服务器下载
1.没有代码时clone
2.已有了代码pull(=fetch+meger)或pull --rebase(=fetch+rebase)
--------------------------------------------------------------------------------------------
git
上传到服务器步骤(主干上工作):
1.(add, commit).新增的文件一定要add,git add .,commit提交到本地,(git commit --amend 合并提交)
2.(fetch ,rebase(rebase前一定要备份)) /(pull --rebase),(有冲突时解决后:add,rebase --continue);(不能解决:rebase --abort)
或(fetch ,merge) / (pull),(有冲突时解决后:(add,commit));(不能解决:merge --abort)
3.push到服务器
------------------------
svn
2.然后update更新(更新之前一定要备份),有冲突时会把所用冲突标出来,冲突解决也可与其他人配合解决,解决后标记resorver冲突已解决,解决不了参照更新前的备份解决。
3.新增的文件一定要add,commit到服务器
---------------------------------------------------------------------------------------
上传到服务器步骤(分支上工作):
1.新增的文件一定要add,点右键add没有add会列出
2.commit提交到本地。(commit之后可以要export出一份,比较有没有漏加的文件。)
3.切换的主干分支。
4.然后pull更新,有冲突解决冲突,冲突解决与其他人配合,实在解决不了revert是恢复到上次提交。
(pull=fetch+meger,fetch只是把远端代码下载到本地,和自己本地代码没有任何冲突,不用担心fetch。meger才是影响本地代码的。)
5.把分支合并到主干,然后commit。
6.push到服务器上的主干。
建立分支工作的好处
分支流程:
每次开发前建立一个工作分支,不在主干上工作。
也可以一个开发模块一个分支,分别工作,最后分别合并到主干。
每次提测后建立一个提测分支,然后还在原来的分支上工作,这样的话出现提测的包出现bug后,就可以切换到提测分支去改bug,
bug改完之后把提测分支合并到工作分支。
建立分支
建立分支可以选择base on任意以前的版本。
切换分支
1.切换前commit代码或者stash暂存代码,不然会切换失败
(暂存后上次commit后的代码都消失了,下次切换回来的时候stash pop更改又恢复了)
2.-f强制切换会丢弃更改或把更改带到要切换的分支上去或其他意想不到的情况。
分支合并主干
分支合并到主干:切换到主干,点右键merger后from选择要合并的分支
meger(比较)前一定commit代码不然合并不了或者意想不到的结果,又可以防止meger出错不能完成合并,只能revert。
meger前最好本地备份代码。防止meger出错并且commit漏加文件。
meger具有智能性,比传统的代码对比工具好在能自动合并无异议的代码,有异议的指出来手工解决。
分支删除
删除分支在查看log中点分支可以分支删除。
回滚到以前版本
恢复到以前版本用reset。tortoiseGig在显示log中点右键。恢复后代码并没有恢复到上一版,revert之后才真正回到上一版代码。
log可以查看本地或remote的不同分支的log,
所有log都是本地缓存的不是线上最新的,如果想看线上最新的,只有pull或fetch之后看到最新的log。
merge与rebase都是代码合并,只是产生的版本线不同。
有冲突时
冲突解决后需要重新add commit(git rebase --continu),实在解决不了git merge --abort(git rebase --abort)恢复到合并前。
-------------------------------------------------------------------------------------------------------
常用命令:
git status 显示所有文件的变化
git branch
git checkout [分支名]
git log [分支名]
git add 把新增的文件添加到索引修(修改的文件有时也需要add)
--all 把所有的都添加进去
.把所有的都添加进去
git commit -m "log" 提交的本地不要加中文
--amend 合并到最后一条commit消息。(git commit -amend )(git commit -amend -m "")
git 可以用pull --rebase (=fetch+rebase),也可以pull (=fetch+merge)。
git push origin HEAD:refs/for/master 把你的分支push到远端master分支