这篇具有很好参考价值的文章主要介绍了2、git进阶操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
2、git进阶操作
2.1.1 分支的创建
命令 |
参数 |
含义 |
git branch (git checkout -b) |
<new_branch> <old_branch> |
表示创建分支 |
-d <-D> |
删除分支 –d如果分支没有合并,git会提醒,-D强制删除 |
-a -v |
查看分支 |
-m |
重新命名分支 |
commit id |
从指定的commit id签出代码 git branch branch_name commit id |
$ git push origin branch_name将本地分支推到远程 $ git push origin branch_name --delete 将远程分支删除 |
### 2.1.2 分支的合并
命令 |
参数 |
含义 |
git merge |
<branch_name> |
需要合并的分支 |
--abort |
终止合并,并回复文件 |
--continue |
继续合并 |
### 2.1.3 git rebase
命令 |
参数 |
含义 |
git rebase |
<branch_1> <branch_2> |
将branch_1上面的移动到branch_2 |
--abort |
终止rebase |
--continue |
继续rebase |
-i |
进入交互模式 |
2.2 git reset/revert/checkout撤销操作
命令 |
参数 |
含义 |
git reset |
--soft commit_id |
撤销到某个commit,不修改工作区和索引区内容 |
--mixed commit_id |
撤销到某个commit,不修改工作区,修改索引区内容 |
--hard commit_id |
撤销到某个commit,并重置工作区和索引区内容 |
HEAD file_name |
撤销索引区指定的file_name |
git revert |
commit_id |
只撤销某个commit |
git checkout |
-- . |
撤销工作区所有文件 |
2.3 git remote远程服务器操作
创建仓库 |
git clone --bare DataStruct-Algorithm /F/datastruct-algorithm.git |
git init --bare DataStruct_algorithm.git |
命令 |
参数 |
含义 |
git remote |
-v |
查看详细的信息 |
show server_name |
查看主机的详细信息 |
add server_name web_site |
添加主机 |
rm server_name |
删除主机 |
rename old_server_name new_ server_name |
修改主机名 |
2.4 git log高级用法
命令 |
参数 |
含义 |
git log |
-n |
表示查看最近提交的n条记录 |
--graph |
显示当前分支提交记录以图形方式展示,后面—all 表示所有的分支 |
--date=short |
查看提交的时间 |
-p |
表示提交文件的修改了那些内容 |
file_name |
表示查看file_name文件的提交记录 |
commit_id..commit_id |
查看两个commit id之间的提交记录 |
--since=<date> |
自date以来的记录 |
--before=<date> |
表达date之前的记录 |
--after=<date> |
表示date之后的记录 |
--until=<date> |
表达直到date之后的记录 |
$ git log --since="2019-07-11" --until="2019-07-16" --date=short\n 表示2019-07-11~2019-07-16(不包括16号)之间提交的记录 |
--grep=<contents> |
根据提交的message内容进行匹配 |
--author=”author_name” |
根据作者名来搜索 |
--skip=n |
跳过前面的n条记录 |
--stat |
显示提交的文件 |
--left-right branch1…branch2 |
比较两个分支的commit差异 |
命令 |
参数 |
含义 |
git reflog |
show |
查看当前分支的记录 |
--all |
查看所有分支的记录 |
在找到commit id之后可以使用cherry-pick branch等命令 reflog有个特点就是它只存在本地记录里面,并不会上传到服务器上 |
2.5 git diff/show查看提交详情
2.5.1 diff
命令 |
参数 |
含义 |
git diff |
不加参数 |
尚未缓存的修改(还未执行add命令) |
--cached |
已经缓存的修改 |
<branch_name1> <branch_name2> [file_name] |
比较两个分支file_name的差异 |
commit_id commit_id |
比较两个commit id 区别 |
3.5.2 show
命令 |
参数 |
含义 |
git show |
<commit_id> |
显示commit id提交修改的内容 |
<commit_id> <file_name> |
查看commit id 中对应的file_name修改内容 |
<tag_name> |
查看tag信息 |
### 2.6 git tag操作
命令 |
参数 |
含义 |
git tag |
-m |
注释信息 |
-f |
强制覆盖 |
-d |
删除 |
-l |
列出所有的tag |
-n |
列出详细信息 |
$ git tag v2.0.0.0 –m “new version v2.0.0.0” $ git ls-remote --tags <server_name>查看远程tag $ git fetch <server_name> <tag_name> 拉取远程tag $ git push --delete <server_name> <tag_name> 删除远程的tag |
注意在checkout tag的时候,如果我们在当前的tag上做了提交,就会造成一个游离的HEAD现象,这是个非常危险的操作,有可能会造成你的commit丢失问题。
2.7 git stash操作
stash的查看,增加,删除,对比,应用文章来源:https://www.toymoban.com/news/detail-778293.html
命令 |
参数 |
含义 |
git stash |
save [message] |
保存stash,并且有注释信息 |
show [stash] -p |
查看某个stash的详细信息 |
drop [stash] |
删除某个stash |
pop |
将当前的第一个stash应用到当前的分支上 |
apply [stash] |
应用指定的stash,并且保存stash不变化 |
clear |
清空stash |
list |
查看所有的stash |
2.8 git blame操作
命令 |
参数 |
含义 |
git blame |
file_name |
查看这个文件都有谁提交的 |
file_name -L num1:num2 |
查看这个文件从num1行到num2行都有谁提交的 |
file_name –L:function_name |
查看这个文件里面函数最后一次谁修改过 |
--colors-lines |
显示颜色标记 |
这个命令有时候可以结合grep使用,主要是为了精确查找信息 |
### 2.9 git patch 操作
1.先生成patch文件 |
$ git format-patch start_commit_id..end_commit_id |
$ git format-patch –n3 |
2.可以事先检测在合并的时候是否存在冲突 |
$ git apply --check patch_file |
3.合并patch文件 |
$ git am patch_file |
4.撤销patch |
$ git apply –R patch_file |
2.10 git submodule管理大型项目的利剑
$ git init –bare test_submodule.git |
$ git submodule add git@github.com:MingYueRuYa/cpp_inside_object.git |
$ git submodule add git@github.com:MingYueRuYa/cpp_study.git |
$ git commit –m “add submodule” |
$ git push |
拉取远程分支 |
$ git clone git@github.com:MingYueRuYa/test_submodule.git |
$ git submodule init |
$ git submodule update (git submodule update –init 将上面的两步合起来) |
$ git submodule foreach git pull |
$ git submodule foreach git submodule update |
$ git rm -rf submodule_name (删除submodule) |
文章来源地址https://www.toymoban.com/news/detail-778293.html
到了这里,关于2、git进阶操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!