论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
物联网
›
物联网
›
Git——命令集合
Git——命令集合
宁睿
论坛元老
|
2024-8-21 22:59:17
|
来自手机
|
显示全部楼层
|
阅读模式
楼主
主题
1084
|
帖子
1084
|
积分
3262
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
Git命令集合
1. 根本操纵
1.1 创建版本库
初始化本地堆栈:git init
添加文件到堆栈:git add | git add file file2… | git add.
提交文件到本地堆栈:git commit -m “message”
1.2 版本回退
查看状态: git status
查看全部修改状态:git diff
查看指定文件修改内容:git diff
回退到指定版本:git reset --hard commit_id
回退到上一个版本:git reset --hard HEAD^
回退到上上个版本:git reset --hard HEAD^^
回退n个版本:git reset --hard HEAD~n
查看详细提交历史:git log
查看简化提交历史:git log --pretty=online
查看分支合并图:git log --graph
查看命令历史:git reflog
1.3 撤销修改
丢弃工作区的修改(未提交值暂存区):
git checkout – file
git restore
git checkout – .
git restore .
丢弃已添加到暂存区的修改
git reset HEAD
git restore --signed
git reset HEAD .
git restore --staged
1.4 删除文件
删除未添加到暂存区的文件:
表现将要删除的问加你和目次:git clean -n
删除文件和目次:git clean -df
删除文件:git clean -f git rm
2. 长途堆栈
2.1 添加长途堆栈
关联长途堆栈:
git remote add origin
删除长途堆栈:
git remote rm origin
查看长途堆栈
git remote -v
推送提交到长途堆栈
git push origin master #一般用于非首次推送
git push -u origin master #-u参数是将本地master分支与长途堆栈master分支关联起来,一般用于第一次推送
2.2 从长途堆栈克隆
git clone
3. 分支管理
3.1 创建与合并分支
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建并切换到该分支:git checkout -b
合并指定分支到当前分支:git merge
删除本地已合并分支:git branch -d
删除长途分支:git push <长途堆栈名> --delete <长途分支名>
推送本地分支到长途堆栈并在长途堆栈创建新分支:git push <长途堆栈名> <本地分支名>:<长途分支名>
3.2 解决冲突
当Git无法主动合并分支时,就必须起首解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
查看分支合并图:
git log --graph
冲突的产生一般都是这两种环境:
长途堆栈的代码落后于本地堆栈
长途堆栈的代码远超本地堆栈
说明
冲突是如何表示的:
当产生合并冲突时,该部分会以 <<<<<<< , ======= 和 >>>>>>> 表示。在 ======= 之前的部分是当前分支这边的环境,在 ======= 之后的部分是传入分支的环境。
如何解决冲突
在看到冲突以后,你可以选择以下两种方式:
决定不合并。这时,唯一要做的就是重置 index 到 HEAD 节点。 git merge --abort 用于这种环境。
解决冲突。 Git 会标记冲突的地方,解决完冲突的地方后利用 git add 加入到 index 中,然后利用 git commit 产生合并节点。
你可以用以下工具来解决冲突:
利用合并工具。 git mergetool 将会调用一个可视化的合并工具来处置惩罚冲突合并。
查看差异。 git diff 将会表现三路差异(三路合并中所采用的三路比较算法)。
查看每个分支的差异。 git log --merge -p 将会表现 HEAD 版本和 MERGE_HEAD 版本的差异。
查看合并前的版本。 git show :1:文件名 表现共同先人的版本, git show :2:文件名 表现当前分支的 HEAD 版本, git show :3:文件名 表现对方分支的MERGE_HEAD 版本。
3.3 Bug分支
暂存工作区状态:git stash
查看暂存的工作区状态:git stash list
恢复全部暂存状态,但不删除暂存内容:git stash apply
恢复指定暂存状态,但不删除暂存内容:git stash apply stash@{}
删除暂存内容:git stash drop
恢复暂存状态,同时删除暂存内容:git stash pop
复制一个特定的提交到当前分支:git cherry-pick <commit_id>
说明
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场 git stash 一下,然后去修复bug,修复后,再 git stash pop
在master分支上修复的bug,想要合并到当前dev分支,可以用 git cherry-pick <commit_id> 命令,把bug提交的修改“复制”到当前分支
3.4 Feature分支
欺压删除分支(会丢失分支上的修改):git branch -D
说明
开发一个新feature,最好新建一个分支;
假如要丢弃一个没有被合并过的分支,可以通过 git branch -D 强行删除。
3.5 多人协作
查看长途堆栈信息:git remote
查看长途堆栈详细信息:git remote -v
与长途堆栈代码同步:git pull
# git pull = git fetch + git merge
在本地创建和长途分支对应的分支:
git checkout -b branch-name origin/branch-name
git switch -c branch-name origin/branch-name
将本地分支与长途堆栈关联:git branch --set-upstream-to origin/
推送本地分支到长途堆栈:git push origin
3.6 Rebase变基
变基(衍合):git rebase
放弃变基:git rebase --abort
解决冲突之后继续变基:git rebase --continue
说明
rebase操纵可以把本地未push的分叉提交历史整理成直线;
rebase的目标是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
4.标签管理
4.1 创建标签
新建标签(指向最新的commit_id):git tag <tag_name>
新建标签(指向特定commit_id):git tag <tag_name> <commit_id>
查看所有标签:git tag
表现某个标签的详细信息:git show <tag_name>
新建带有说明的标签:git tag -a <tag_name> -m “说明” <commit_id>
4.2 操纵标签
删除指定本地标签:git tag -d <tag_name>
删除指定长途标签:git push origin :refs/tags/<tag_name>
推送一个本地标签:git push origin <tag_name>
推送全部未推送过的本地标签:git push origin --tags
5.git场景处置惩罚
5.1 fatal: refusing to merge unrelated histories
有时在pull或merge时会出现下述错误:
fatal: refusing to merge unrelated histories
解决办法:
git merge origin/master *--allow-unrelated-histories*
复制代码
效果如下:
$ git merge origin/master *--allow-unrelated-histories*
Already up to date!Merge made by the 'recursive' strategy.
复制代码
只需要在命令的最背面添加 --allow-unrelated-histories ,这句话是告诉Git允许不相干历史合并
5.2 git merge origin master与merge origin/master
git merge origin master
和
git merge origin/master
的区别
# 将origin merge 到 master 上
git merge origin master
# 将origin上的master分支 merge 到当前 branch 上
git merge origin/master
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宁睿
论坛元老
这个人很懒什么都没写!
楼主热帖
java前置学习
【RocketMQ】消息的存储
iOS Widget
简单的用Python对手机号进行加密 ...
【PostgreSQL】PostgreSQL重建与主库不 ...
k8s v-1.20版本部署详细过程[实测可用 ...
基于单片机的压力测控仿真设计(#0024) ...
❤️肝下25万字的《决战Linux到精通》 ...
Unity 将是驱动 C# 增长的引擎吗 ? ...
【iOS面试总结】疫情隔离中,线上面试 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
虚拟化与私有云
Mysql
DevOps与敏捷开发
网络安全
程序人生
MES
容器及微服务
移动端开发
云原生
快速回复
返回顶部
返回列表