设为首页 收藏本站
查看: 1342|回复: 0

[经验分享] 版本管理工具使用总结(git,svn,hg)

[复制链接]
发表于 2018-1-13 23:47:40 | 显示全部楼层 |阅读模式
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>常用命令
  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>  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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434863-1-1.html 上篇帖子: Git 二分调试法,火速定位疑难Bug! 下篇帖子: git使用教程及github远程仓库管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表