您的位置:首页 > 其它

版本管理工具使用总结(git,svn,hg)

2017-10-09 10:42 841 查看


git


一、git常用命令

1提交代码 

git add .         //把修改的或增加的文件添加到本地库里 

git commit -am “说明性文字” 

git pull           //从服务器上更新代码,避免覆盖别人的代码 

git push         //把自己修改的上传到服务器

2查看状态 

git status

3解决冲突 

当自己和别人同时修改了工程文件*.xcodeproj,在执行git pull时会提示发生冲突。解决的办法为: 

进工程目录,右击*.xcodeproj –>显示包内容,出现project.pbxproj文件、project.xcworkspace文件和xcuserdata文件jia; 

双击打开project.pbxproj,将此文件里面所有保含冲突标志的行全部整行删掉 

(冲突标志有3种:>>>>>>>>, ========和<<<<<<<<,单击鼠标左键3次即可选中整行); 

打开工程,执行以下3个命令: 

git commit -am “solute confilcts” 

git pull (这是简写,完整的命令为git pull origin master) 

git push (这是简写,完整的命令为git push origin master)

4放弃本地修改 

git reset –hard

5 分支 

1)创建分支 

git checkout -b haishu 

2)切换分支 

git checkout haishu 

git checkout master 

3)查看本地分支 

git branch 

4)查看所有分支 

git branch -a 

5)删除本地分支 

git branch -d haishu(此命令不能删除当前分支,要先切换到其他分支,比如git checkout master) 

6)合并分支,比如haishu合并到master 

git checkout master 

git pull(完整命令为git pull origin master) 

git merge haishu 

git push(完整命令为git push origin master) 

7)查看远程分支 

git branch -r 

8)新建与远程分支相对应的本地分支 

git checkout -b v2.9 origin/v2.9 

这里的origin v2.9为远程分支,后面的v2.9为相对应的本地分支


二、git 解决 .DS_Store冲突

1//进根目录 cd  

2//删除所有.DS_Store 

find . -depth -name ‘.DS_Store’ -exec git-rm —cached ‘{}’ \; -print  

3//在.gitignore添加忽略文件 

vim .gitignore  添加一行  .DS_Store 并保存 

4// pull确保提交的代码没有  .DS_Store 然后提交


三、回朔版本

1.git pull 拉取远程代码 

2.reset 历史版本 

   •   HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。 

   •   穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。 

   •   要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。


四、git rebase多人开发

1.git checkout Dev/git pull  

2.git checkout yourDev 

3.git rebase/git add ./git commit  

4.git checkout Dev/git merge  yourDev


svn

下载服务器代码:svn  co  https://IP:Port/pathOfProject/trunk theUrlOfCurrentUser 

更新:svn up 

提交:svn commit -m “do something” 

增加文件:svn add filename1 filename2…

解决 Xcode 4 删除文件后 missing file 警告


hg


安装

sudo easy_install mercurial 

然后输入管理员密码,自动下载并安装


hg 配置

进入 

vim ~/.hgrc 

按i进入编辑状态,输入下面的信息,把账号给成自己的 

按esc 然后输入 :wq保存并退出编辑

*[ui] 

username = yourUsername 

merge = kdiff3 

[auth] 

repo.prefix = https://hgcode.yonyouup.cn/ 

repo.username = yourUsername 

repo.password = yourPassword 

[hostfingerprints] 

hgcode.yonyouup.cn = F0:2B:9B:39:2F:06:82:D1:F8:FF:A2:64:82:A6:78:B4:66:A1:C9:61 

[tortoisehg] 

vdiff = kdiff3 

[extensions] 

fetch= 

hgext.extdiff = 

[extdiff] 

cmd.kdiff3 = 

[merge-tools]


Override stock tool location

kdiff3.executable = /Applications/kdiff3.app/Contents/MacOS/kdiff3


Specify command line

kdiff3.args = basebase local other−oother -o output


Give higher priority

kdiff3.priority = 1*

点esc  冒号wq


常见错误:

如果多修改,然后就可以用hg更新源代码了

例如:

hg clone https://code.google.com/p/core-plot/

hg branch  显示当前使用分支

hg branch liujing_dev_email

hg ci -m”new branch liujing_dev_email”

hg push —-new-branch

hg pull  https://thePathOfYourCode //拉其它人的代码

新的代码分支  https://thePathOfYourCode -b release1.0.3


常用命令

hg merge zjb_dev 将分支合并到本地

hg merge    release1.0.3

hg ci -m “merge from zjb_dev” 提交合并结果

hg push    推到服务器上

hg revert file.xxx  恢复服务器上的文件到本地,覆盖掉本地文件

hg revert —all  用服务器上的版本完全覆盖本地

hg st  查看代码更改状态

hg diif 查看代码变更详情


提交流程

hg add

hg ci -m “用户设置修改”

hg st

hg push


重建分支

hg branch release1.0.3_wyz_yijianfankui     release1.0.3_wyz_Email

hg push —-new-branch


提交

hg ci -m ‘release 1.0.3 branch’

hg revert + 路径    回复原状不提交

hg remove tesn/image/首页/.DS_Store -f  删除文件

rm + 路径  删除本地文件   

rm tesn/controllers/UIMainNavigationViewController.m.orig


注意事件

提交之前先ci -m”update“

拉取别人代码:pull https://hgcode.yonyouup.cn/mobile/ios_zhangjinbo -b some_dev_version

拉取之后合并:hg merge some_dev_version

合并之后查看:hg st

再提交:hg ci -m”mergeFrom zjb_dev_1.0.3”

再查看:hg st

最后push到服务器: hg push

成功之后提示类似于:r123:9aa725d1367c

出现!  表示之前的文件已经删除  hg addremove之后就可以


分支的合并,要小心从default主分支建立

合并分支

根据 Hg 的设计特征, Hg 似乎是不推崇创建大量分支来作为开发手段,其中一个很重要的特性就是没有删除分支这一功能!所有分支只能关闭,或者任由其存在。

如果实在要合并某一个以后不再使用的开发分支,有一个变通的方式。简单的说就是:

update 到需要关闭的分支 needCloseBranch 

关闭 needCloseBranch 分支 

update 到需要合并后保留的分支 default 

合并 needCloseBranch 到 default 

最终 needCloseBranch 这个分支并不会真正消失,不过在默认情况(不显示已关闭分支)下是看不到的

以下是命令行的范例(支持 hg 2.x 版本)

hg update needCloseBranch 

hg commit –close-branch #关闭功能在 TortoiseHg 是没有的,只能在命令行操作

hg update default

hg merge needCloseBranch
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: