git和svn区别 git的常用指令
git 常用命令
git 与svn diff
常用命令
添加到< 暂存区 >
git add .
提交到< 本地git版本库 >
git commit -m “$本地提交代码描述语"
提交到 < 远程版本库 >
git push origin master:refs/for/$branchName
从 <远程版本库更新> 到 <本地版本库>
git pull origin master
从远程版本库拉取本地 或者恢复 相当于 svn revert
git checkout $fileName
从远程版本分支合并到本地版本库中
git merge $branchname创建新分支
1.进入pub工程目录(此步骤可选,如果不修改pub工程,就不需要此步骤)
更新工程到最新(git pull)
创建分支(git checkout -b release-brv1.0.0)
把本地分支推送到服务端(git push -u origin release-brv1.0.0)
增加分支配置文件(pub目录下的conf文件,即配置导航、引擎等的下载url)(cp -r conf/master conf/ release-brv1.0.0 ) (如有需要请修改conf/release-brv1.0.0 目录下的文件)
将 conf/release-brv1.0.0 提交到新建分支release-brv1.0.0,并推送到服务端(git push origin head:refs/for/release-brv1.0.0)
切回dev目录,
2.进入dev工程目录下
更新工程到最新(git pull)
创建分支(git checkout -b release-brv1.0.0)
(此步骤可选,如果第一步没有修改pub工程,就不需要此步骤)然后add、提交submodule的修改(即上面pub工程的release-brv1.0.0分支的最新提交)
把本地分支推送到服务端(git push -u origin release-brv1.0.0)
git拉取分支操作
git clone //整个代码库到本地
git pull //取回远程主机所有分支的更新
git branch -a //查看所有的分支信息
git checkout -b branch_2017.2.01
例如:
1. git clone ssh://************
2. git pull
3. git branch -a
4. git checkout -b branch_2017.2.01
git环境配置
git使用
概述
(git 工作区 )—add —> (git 暂存区) —commit —> (git版本库 )—push(点击合入) —>( 远程版本库)
2.1 克隆远程分支到本地
git clone -b {分支名} {远程代码仓库} {本地文件夹名称}
git checkout -b 本地分支名 {远程分支名}
示例如下:
git clone -b datacenter_1-0-2_BRANCH ssh://************** // 将远程代码仓库中的数据中心模块的1-0-2分支拉取到本地的datacenter目录夹, 远程代码仓库可以在icode中查看
2.2 常用查询命令
git branch // 查看当前分支
git branch -a // 查询所有远程分支
git status // 查询当前分支修改状态
git log // 查询git提交记录
git show {commit id} // 查看某个commit修改的内容
2.3 git修改提交流程
新增或者修改文件, 可以用git status查看文件的状态git pull origin {分支名} // 拉取最新的分支代码git add {文件} // 将新增的文件或者修改的文件添加到本地版本库控制中, 用'.'将所有修改或者增加文件添加到版本控制库中git commit -m 'comment' // 将修改或者增加的文件添加到本地仓库中git push origin {本地分支名}:refs/for/{远程分支名} // 将本地仓库中的文件提交到远程仓库(origin)的特定分支中点击上述push产生的cooder连接,review之后,点击合入 // 此为百度特有流程
2.4 分支切换开发便捷方式
在通常情况下, 一般是多分支同时研发,或者在研发的过程中要紧急解决一些线上的问题,此时需要临时切换分支,但是此时开发分支里面的内容不想在紧急分支中可见以及可被提交,此种情况下,可有以下两种解决办法:
a. 同步分支用不同的文件夹来管理
此种方法是通过建立不同的存储分支的文件夹来做不同版本之间的修改内容之间的隔离。该方法的优点就是不同版本之间的修改内容绝对隔离,缺点是分支多了之后,维护成本较高。
b. git stash
当在一个分支的开发工作未完成,却又要切换到另外一个分支进行开发的时候,除了commit原分支的代码改动的方法外,我觉得git stash是一个更加便捷的选择。
git stash save -u 'comment' // 对当前的暂存区和工作区的所有文件进行保存, -u忽略所有untracked files -a指全部,包括被git忽略的文件
git checkout {其他分支} // 切换到其他分支,此时分支里面不含有上个分支里面的任何内容
修改代码测试提交
git checkout {之前分支} // 切换会之前的分支
git stash list // 查看暂存区内所有保存的列表
git stash pop // 弹出暂存区最新的暂存内容, 也可以使用git stash apply {版本号} 执行git stash list可以查询,如stash@{0}
开发提交
【重要】
- 使用git stash方法进行多分支同时开发时,一定要确认好开发分支,不然,执行git stash pop会将其他分支的内容应用到非修改分支。
2.5 git撤销
传送门: https://segmentfault.com/a/1190000003102737
a. git add撤销
当执行git add之后发现了添加了不应该不应该添加的文件,可以执行如下操作
git reset HEAD // 也可以用git log 查看提交记录, 将HEAD替换为特定之前的某个记录
b. git commit后的撤销
当执行了git commit之后发现提交了不应该提交的文件到本地仓库,可以执行如下操作撤销提交
git log -n 10 // 查看之前的提交记录
git reset {commitid} {文件} // 回退到之前的提交记录中, 本次提交后, 只是commit区的内容回退到之前的版本,而本地文件的修改不变, 也可以使用HEAD~1等快捷操作回退到之前的版本
git reset --hard HEAD~1 // 强制回退到之前的版本,本地的修改会舍弃而不会保留,注意和不加--hard的区别
c. git push 之后撤销
需要执行以下操作:
git rm {文件}
git commit -m 'commit'
git push origin {分支名}:refs/for/{分支名}
2.6 git merge
cd web-php
git checkout web-php_1-0-1_BRANCH
git merge master
git add .
git commit -m "合并分支"
git push origin HEAD:refs/for/web-php_1-0-1_BRANCH
备注:
在merge前尽量commit修改内容,或者稳妥起见,新拉一个干净的分支进行合并提交,在当前的开发分支内进行pull即可。
使用小技巧
3.1. 设置.gitignore
设置…gitignore文件,并在里面添加git忽略文件,这样以后可以避免提交一些无用的文件,如*~等
*~ // 忽略所有以~结尾的临时文件
git和svn区别 git的常用指令相关推荐
- Git与SVN区别 \git学习
http://blog.csdn.net/w13770269691/article/details/38705473/ https://git-scm.com/book/zh/v2 转载于:https ...
- Git的学习与使用(一)——Git 与 SVN 区别
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git ...
- java常见面试考点(十一):git与svn区别
java常见面试考点 往期文章推荐: java常见面试考点(六):深入理解String类型 java常见面试考点(七):递归与迭代 java常见面试考点(八):成员变量与局部变量 ja ...
- Git 与 SVN 区别
Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概 ...
- 简述Git 与 SVN 区别
Git 与 SVN 区别 Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等. 如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概 ...
- 五、Git 与 SVN 区别
五.Git 与 SVN 区别 Git 与 SVN 区别点: · 1.Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别. · 2.Gi ...
- git简介,git和SVN区别
1.git简介 ,git与SVN区别 Git是目前世界上最先进的分布式版本控制系统(没有之一). 那什么是版本控制系统? ...
- GitHub与Git区别,Git与SVN区别,Git国内镜像下载
GitHub 又称 GayHub,作为众多开源代码的汇集地,名副其实被誉为全球最大的同性交友社区.我们在这里上传和下载代码,GitHub进行远程托管,拥有代码管理权的人可以对版本和内容进行控制,极大的 ...
- git 和 svn 区别
入职到新公司,代码版本控制工具由svn转变成git了,不是很适应.按照使用频率依次递减的原则,总结一下二者的差别,才能更好的学会使用.从2个维度进行总结. 1,有无中心服务器.svn有,git无. s ...
最新文章
- 几种典型磁铁表面的磁感应强度的变化
- 用户控件(显示用户信息,修改用户名密码)的WebPart预览版
- 计算属性一般是没有set方法, 只读属性 ||计算属性的缓存
- 《XNA高级编程:Xbox 360和Windows》3-6
- 使用JWT进行跨域身份验证
- 列名 userid 不明确。 表结构_那些你不知道的表结构设计思路
- 使用Libxml2解析xml[转]
- petshop学习笔记(1)
- 设置应用栏(Setting Up the App Bar)
- 【单目标优化求解】基于matlab多子群改进的海洋捕食者算法(MSMPA)求解单目标优化问题【含Matlab源码 1783期】
- python函数中文手册-python手册中文版 python函数中文手册.doc
- mimics软件怎么恢复原来默认的窗口设置
- 串口通信那些事儿:通信电平转换电路
- 尤雨溪:Vue 3 将成为新的默认版本
- 巴比特 | 元宇宙每日必读:入职三个月就遭遣散,热潮过后的元宇宙会走向哪里?...
- CentOS 8 如何更换yum源
- 京东评论情感分类器(基于bag-of-words模型)
- 东方国信携手Cloudera 共创Hadoop生态圈辉煌
- 能用四川电信卡开通的虚拟服务器,双网通手机也能用电信卡了?VoLTE开放:发短信就能开通...
- 评中药:就这样被慢慢毒死