0


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_namegit revertcommit_id只撤销某个commitgit checkout-- . 撤销工作区所有文件

2.3 git remote远程服务器操作

创建仓库git clone --bare DataStruct-Algorithm /F/datastruct-algorithm.gitgit 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的查看,增加,删除,对比,应用
命令参数含义git stashsave [message]保存stash,并且有注释信息show [stash] -p查看某个stash的详细信息drop [stash]删除某个stashpop将当前的第一个stash应用到当前的分支上apply [stash]应用指定的stash,并且保存stash不变化clear清空stashlist查看所有的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 –n32.可以事先检测在合并的时候是否存在冲突$ git apply --check patch_file3.合并patch文件$ git am patch_file4.撤销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)
在这里插入图片描述

标签: git

本文转载自: https://blog.csdn.net/Mingyueruya/article/details/134603305
版权归原作者 蓑衣夜行 所有, 如有侵权,请联系我们删除。

“2、git进阶操作”的评论:

还没有评论