提示:文中出现的 <xx名> 为命名变量,具体按照 xx 区分含义。
提示:文中出现的 or 为或者的意思,表示有多种用法或者写法。
日常必用指令
1、克隆仓库指定分支代码
git clone -b <分支名> https://xxx.com
🌰🙋 克隆 test 分支代码
git clone -b test https://xxx.com
2、提交到暂存区
git add -A
这里多提两个git命令
git add .
:他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
git add -u
:他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
git add -A
:是上面两个功能的合集(git add --all的缩写)
3、将暂存区内容添加到本地仓库中
git commit -m '提交内容文字描述'
🌰🙋 提交 test 分支 首页下用户详情 代码bug修改
git commit -m 'fix 首页 => 用户详情 bug修改'
fix 意思是修理,安装的意思,常用的简写如下(只是建议,不是必须)
"feature", // 新功能
"fix", // 修复 bug
"docs", // 文档注释
"refactor", // 重构
"revert", // 回退
"build" // 打包
复制代码
4、服务器向本地同步代码
git pull origin <分支名>
🌰🙋 提交 test 分支代码
git pull origin test
5、将本地代码提交到服务器
git push origin <分支名>
🌰🙋 提交 test 分支代码
git push origin test
这里多提一嘴,很多初学者(我)/小公司开发者(我)/夕阳红产业转行工作者(我)都可能在这一步遇到一个小问题: 代码有了冲突,然后控制台显示的页面有点陌生(linux页面),可编辑的部分连文件路径都不显示的情况。并且怎么也退不出去,回不去之前控制台,强制关闭又怕代码出现问题。
这种情况其实看一下linux就非常清楚了(但是很多人不知道这是linux页面)。只需要输入 q 字母,然后回车就可以退出linux系统(有时候是 :q 看具体的终端前面有没有自动加冒号)。
基本上面这些已经够80%的日常开发了,所以,项目比较小,分支少,一个人开发的项目就足够用了。接下来,下面可能是一些杂七乱八的git命令了。
git中tag标签相关
1、班门弄斧:tag的作用
tag 是git仓库里面某分支某次commit的标记。本质上还是commit的一个别名。
🌰🙋 a标签做的的锚点(tag),会跳转到页面(git仓库)某一位置。具体位置由**id(commit)**来界定。
不明白没关系。后面会有 趣味 拉tag标签代码以及打标签操作。
2、tag标签使用
查看 本地 所有tag
git tag or git tag -l
查看 仓库 所有tag
git ls-remote --tags origin
创建 本地 tag
git tag -a <标签名> -m '标签内容文字描述'
创建 仓库 tag
将本地tag推送到仓库,就成了仓库tag
git push origin <标签名>
如果本地tag比较多,一次全部推送
git push origin --tags
进阶用法,为某个commit后的代码打tag标签
适用场景:隔壁组小伙子完成某模块后,又 忙着约会没有打tag。导致后面有人提交了commit,需要有人加班帮忙补打标签。 心中无女人,代码自然神。周六加班帮忙补打完tag的我走在路上,寒风凌烈,是时候买个帽子保护头发了。
查看当前分支的提交历史 里面包含 commit id
git log --pretty=oneline
git tag -a <标签名>
or
git tag -a <标签名> <commitId> -m '标签内容文字描述'
删除本地tag
git tag -d <标签名>
删除仓库tag
git push origin :refs/tags/<标签名>
将代码切换到某个标签
git checkout -b <tagName>
实际应用
适用场景:什么,小明又回家逗悠米(狗子)了? test 分支tag又没打?首页 => 用户详情的标签对吗?让我来。(地铁上大家都在看我的掘金帽子,嘿嘿嘿。什么?看我光头?)
git log --pretty=oneline // 得到了commit id'85593cbdebe188a3d28d32003e6175d946971688'
git tag -a v1.0.0.1 85593cbdebe188a3d28d32003e6175d946971688 -m '稳定版本 v1.0.0.1' // 创建完成
or
git tag -a v1.0.0.1 85593cbdebe188a3d28d32003e6175d946971688 -m '首页 => 用户详情 完成后的稳定版本 v1.0.0.1'
git push origin v1.0.0.1 // 推送仓库完成
git ls-remote --tags origin // 确认一下,的确成功了
自此,所有的tag相关内容完成了,下面是一些git的其他乱七八糟的命令了。
git杂项命令
1、查看当前本地代码状态(add前和commit前)
git status
2、查看上次代码pull后的所有提交记录
git log
3、从A分支上某次提交同步到B分支上
3.1 切换到A分支并且找到提交id 85593cbdebe188a3d28d32003e6175d946971688
git log --pretty=oneline
3.2 切换到B分支
git cherry-pick 85593cbdebe188a3d28d32003e6175d946971688
3.3 保持良好习惯
git pull origin B
3.4 提交代码,下班,回家抱娃。
git push origin B
最后,如果文章有什么问题或者是有什么其他想讨论的,大家一定要提出来。谢谢大佬。