共计 1686 个字符,预计需要花费 5 分钟才能阅读完成。
在工作中经常会用到 git,但有时一些比较少见的操作仍然要在网上查询搜索。因而下面将一些常见的操作归纳总结如下:
1、基础类
克隆远程分支代码,- b 参数为指定分支名称,不指定则拉取 master 主分支
git clone -b beta git@gitlab.weget.com:phpers/weget.git
git pull 拉取代码
git push 提交代码
git add . 将本地所有变化文件添加到暂存区
git commit -m ‘ 提交日志 ’ 提交代码
2、分支类
以下 gary 指代自定义创建的分支名,根据实际情况自定义
git branch -a 查看远程所有分支(方便交互开发互相拉取)
git remote -vv 查看 git 链接信息
git branch gary 创建本地分支
git branch -d gary 删除本地分支
git push origin —delete gary 删除远程分支
git checkout gary 若 gary 为本地已存在分支,切换到 gary 分支。若 gary 存在远程,则在本地自动创建一个绑定到远程的 gary 的分支,并且切换到 gary 分支
git fetch origin gary 拉取远程某分支到本地
git merge origin/beta-local 合并本地某分支的代码到当前分支
git branch -vv 查看分支与远程分支的绑定关系
git remote prune origin 清除分支看到的项目中多余的远程分支(gitlab 中删除分支,但 git branch - a 仍然会看到所有分支的问题) 参考文章
3、撤销类
分以下三种情况:
3.1 未使用 git add 缓存代码时。
可以使用 git checkout — filepathname (比如:git checkout — readme.md,不要忘记中间的“–”,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
3.2 已经使用了 git add 缓存了代码。
可以使用 git reset HEAD filepathname(比如:git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。
3.3 已经用 git commit 提交了代码。
可以使用 git reset –hard HEAD^ 来回退到上一次 commit 的状态。此命令可以用来回退到任意版本:git reset –hard commitid
4、配置类
查看用户名和邮箱地址
git config user.name
git config user.email
修改用户名和邮箱地址
git config –global user.name “username”
git config –global user.email “email”
5、tag 类
5.1 git 打标签
git tag -a v1.4 -m ‘version 1.4’
列出现有标签的命令非常简单,直接运行 git tag 即可
可以使用 git show 命令查看相应标签的版本信息,并连同显示打标签时的提交对象。
5.2 查看相应标签的版本信息
git show v1.4
我们忘了在提交“updated rakefile”后为此项目打上版本号 v1.2,没关系,现在也能做。只要在打标签的时候跟上对应提交对象的校验和(或前几位字符)即可:
git tag -a v1.2 9fceb02
5.3 提交到远程
默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可:
git push origin v1.5
如果要一次推送所有本地新增的标签上去,可以使用 –tags 选项:
git push origin –tags
5.4 删除 tag
随着时间推移,项目频繁发布,会留下很多标签,git 有删除 tag 的命令
git tag -d tagName 删除 tag
git push origin :refs/tags/tagName 删除远程
6、其他
git log —pretty=online -n 10 格式化查看 git 日志
git blame -L 190,210 MSku.php 查看文件的某个行数范围内的历史提交记录,用于追责