首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
物联网/工业互联网
›
物联网
›
Git——命令集合
返回列表
发新帖
Git——命令集合
[复制链接]
发表于 2024-8-21 22:59:17
来自手机
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
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
复制代码
回复
使用道具
举报
返回列表
浏览过的版块
DevOps与敏捷开发
区块链
虚拟化与私有云
Java
分布式数据库
Mysql
SQL-Server
Oracle
linux
宁睿
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表