git实用指南

本文详细介绍了Git的各种常用命令及其应用场景,包括添加、提交、撤销操作、状态查看、解决冲突、时光穿梭以及分支管理和标签管理。内容涵盖从基本操作到高级用法,旨在帮助开发者更好地理解和掌握Git的日常使用。
摘要由CSDN通过智能技术生成

git实用指南

           Git实用指南   -- RDG

Git的本地结构:

添加“新建/修改”
git add [file name]
将工作区的“新建/修改”添加到暂存区
git rm命令是把建立的版本库索引(index)和那个文件一起删除了。加上cached之后,就只删除索引,不删除文件本身。
与git add相应的取消操作并不是git rm,而是git rm –cached。这是需要非常注意的地方。
git rm --cached [file name]
撤销暂存区所有“新建/修改”
git reset --hard HEAD

撤回git add
使用场景你错误提交git add了N多文件,其中有你不希望提交的
放弃所有的暂存区修改可以使用,
git reset HEAD . 放弃所有的暂存区修改可以使用
git reset HEAD readme.md 来放弃指定文件的缓存

状态查看
git status
查看工作区、暂存区状态

Git add new.text

提交
git commit -m “commit message” [file name]
git commit -am"commit message"
将暂存区的内容提交到本地库

撤回提交
1,还在本地没有推送到远端
git add . //添加所有文件
git commit -m “本功能全部完成”
此时还没git push
git reset --soft HEAD~1
如果是撤回两个连续提交 git reset --soft HEAD~2
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留

2,错误提交, 并且推送到远端了,撤回的办法:
git reset --soft aa909cff
git push –-force 或 git push -f -u origin master

3,通过反做来撤销一个提交,会产生新的一个提交
git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861
git commit -m “revert add text.txt”
git push

拉取
git merge和git pull时代码与本地工作区未提交的代码有冲突
git提示your local changes to the following files would be overwitten by merge
1,按照提示提交本地工作区的代码 , 再merge
2,不提交代码 , git stash(隐藏当前工作区),再进行git merge,最后git stash pop(恢复隐藏的工作区);
合并
大多数情况是没有冲突的;
只解决一次冲突,分别对应的是当前分支最新提交和合并分支的最新提交的冲突

  • 合并之后产生一个新的提交
  • commit信息按照时间顺序合并
    冲突未能解决可放弃本次合并
    git merge --abort

解决冲突
冲突的表现

 冲突的解决
 第一步:编辑文件,删除特殊符号
 第二步:把文件修改到满意的程度,保存退出
 第三步:git add [文件名]
 第四步:git commit -m “日志信息”
 注意:此时commit 一不能带具体文件名

			  撤销合并

reset 到 merge 前的版本,然后再重做接下来的操作,要求每个合作者都晓得怎么将本地的 HEAD 都回滚回去:
git checkout [行merge操作时所在的分支]
git reset --hard [merge前的版本号]

查看历史记录
git log
git log --oneline
时光穿梭机(前进后退)

基于索引值操作[推荐]
 git reset --hard [局部索引值]
 git reset --hard a6ace91

使用^符号:只能后退
 git reset --hard HEAD^
 注:一个^表示后退一步,n 个表示后退n 步
 使用~符号:只能后退
 git reset --hard HEAD~n
 注:表示后退n 步

reset 命令的三个参数对比 默认—mixed

–soft 参数 仅仅在本地库移动 HEAD 指针
–mixed 参数 在本地库移动 HEAD 指针 + 重置暂存区
–hard 参数 在本地库移动 HEAD 指针 + 重置暂存区 + 重置工作区

文件对比
git diff [本地库中历史版本] [文件名]

		    千里之行,始于切糕

1,切换分支
git checkout 分支名

2,脱离分支切换历史版本
git checkout commit_id版本号

3,拷贝其他分支的文件到本地
git checkout 分支名 文件名
举个栗子:如果只是简单的将feature分支的文件f.txt copy到master分支上;
git checkout master
git checkout feature f.txt
如果突然不想合并过来 ,想还原master
git checkout master f.txt

4,拷贝其他历史版本的文件到本地
git checkout commit_id版本号 文件名

5,放弃某个文件的改动
git checkout文件名

6,放弃所有工作区的修改
git checkout .

7,切换到指定标签
git checkout 标签名

新建分支
Git checkout -b v1230
Git push –set-upstream origin v1230

便民套餐
git commit -am关联马蜂窝 && git pull && git push

Work flow

热修复
Bug出现:
基于master创建hotfix分支
git checkout -b hotfix
1,微小改动,在本地环境就可以完成验证的
验证通过后,发布人员在master分支merge 该hotfix分支后发布;
2,需要在测试环境验证的
测试环境git checkout hotfix ,测试人员进行验证
验证通过后,发布官在master分支merge 该hotfix分支后发布;
Git checkout master
Git merge hotfix
Git push
生产服务器 git pull

标签

git tag -a tagName -m “my tag” (新建本地标签)

git tag -a tagName 9fceb02 -m “my tag” (给指定commit版本打标签)
git push origin v20191205 (本地标签推送到远端服务器)
git tag (显示所有标签)

git show tagName (显示标签详情)

git tag -d v0.1.2 (删除本地标签)

git push origin :refs/tags/ (远端删除标签)

example: git push origin :refs/tags/v0.1.2 远端删除

遇事不对 , 莫要慌 , 这本git宝典 , 翻开它

祝大家切糕愉快

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值