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忽略文件,这样以后可以避免提交一些无用的文件,如*~等
*~ // 忽略所有以~结尾的临时文件