这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
本文介绍的内容都是git基操、着重于提交回滚那些事,助力代码提交,看完能保证提交代码这块顺畅进行😄😄😄
基础信息查看
-
远程查看
git remote show // 查看主机名 git remote -v // 查看关联远程连接
-
账号信息
git config user.email git config user.name
分支操作
-
新建本地分支
git checkout -b <分支名称> // 例如 git checkout -b shengjingyin
-
新建远程分支
git push <主机名> <本地分支名称> // 创建的远程分支名称与本地分支一样 git push <主机名> <本地分支名称>[:<远程分支名称>] // 这样写,可以关联到不一样名称的远程分支,例如 git push origin dev3:ayin,我本地是dev3,但是我远程创建的却是ayin分支
-
切换本地分支
git checkout <分支名称>
-
删除本地分支
git branch -d <分支名称>
-
删除远程分支
git push <主机名> --delete <远程分支名称>
-
分支状态
git branch <-a> // 查看本地分支,加了`-a`参数就是查询本地+远程分支,带*号的是当前分支,
正常开发提交流程
从网上down了一个示意图下来,感觉比较齐全,涉及到工作区、暂存区、本地仓库、远程仓库之间如何进行沟通(从右到左,我本意是想找个从左到右的,emm但是找不到,好难受啊😫)
1、工作区与暂存区之间的沟通
工作区提交到暂存区
正常提交时,如下三点所示:
-
添加一个或多个有变更的文件到暂存区
git add [file1] [file2] ...
-
添加指定目录到暂存区,包括子目录
git add [dir]
-
添加当前目录下的所有文件到暂存区
git add .
暂存区返回到工作区
想让暂存区的内容返回到工作区,可用如下种方法:
-
回退暂存区内指定文件
git reset HEAD rainbow.txt start.txt
-
回退暂存区内所有文件
git reset HEAD *
-
回退暂存区内某一类别文件
git reset HEAD *.txt
2、暂存区与本地仓库之间的沟通
暂存区提交到本地仓库
-
提交暂存区到本地仓库中
git commit -m 'message'
-
提交暂存区的指定文件到仓库区
git commit [file1] [file2] -m [message]
本地仓库回退到工作区
已经将代码提交到本地仓库的代码,即已经进行 commit
操作,如果想撤销之前的修改,需要执行版本回退操作,回退后的文件会回到工作区,而不是暂存区。
-
回退到上一个版本
git reset HEAD^ // 上一个版本 git reset HEAD^^ // 上上一个版本 git reset HEAD^^^ // 上上上一个版本 git reset <commit-id> // 回到指定版本
-
回退到指定版本
git log // 查看提交记录,获取commit-id,下一步使用 git reset <commit-id> // 回到指定版本,需要上一步骤中的id
tips:可以使用
git log
或git reflog
命令来查看git的提交历史,获取commit-id
3、本地仓库与远程仓库之间的沟通
推送到远程仓库
-
本地分支与远程分支已经建立联系
git push git push -f // 强制远端分支与本地分支一样,没事别搞这个,不然被骂了可别怪我😂
-
本地分支与远程分支未建立联系
这时候如果push,会提示以下信息,未建立远程关联的意思,人家已经把建立关联的代码都提示出来了,照着打就行
git push --set-upstream origin dev // 创建关联的同时,推送本地仓库代码到远程仓库关联分支(dev)
回退远程提交记录
有时候我们提交到远程了,但是觉得提交信息有误,或者提交了本地测试代码到远程上去了,这时候该怎么办呢?下面就来介绍一下怎么回退远程提交记录,分为两步骤:
我这里提供的方法不是唯一方法,如果有更好的方法,欢迎评论区回复,谢谢~
-
先回退本地仓库到指定版本
git reset HEAD^ // 回退上一个版本,具体用哪个方式需要看你自己的需求 git reset <commit-id> // 回到指定版本
-
再继续强推送
git push -f // 值得注意的是:你必须清楚的知道 -f 的作用!!!
-
效果:可以看到1分钟前的那条提交记录已经没有了
本章小结
本节主要介绍开发完代码,如何去创建分支、提交代码的一个整体流程,关于各种回退的方式我相信大佬们也还有其他的方式,我这提供的也就只是平常开发的一个正常操作,没什么奇淫巧计,如果你有更好的方式,欢迎评论区回复,以避免其他人中了我的圈套😂😂😂
下章节我将继续介绍git的一些进阶操作:例如如何解决代码合并冲突、临时储存代码等等~~