1 git 命令
💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗💗
关注git在本地的配置问题,可以参考这篇文章,写的较为详细:
非常详细的Git环境配置步骤,如果相以gitee作为远程仓库也是同样的操作
😊下面这张图个人觉得很不错,等学完了这一套之后就会觉得是真牛逼画的
👉 初始化相关操作:
git init
:初始化本地仓库 ,建立工作区,并对工作区进行版本监控
git status
:查看当前状态,可以显示文件的新建、修改、删除等等操作
git add .
:添加工作区所有文件到到版本库的暂存区中,如果你要提交的是单个文件,你也可以用git add 后面跟单个或者多个那文件即可
👉 提交到版本库分支:
git commit -m "commit说明"
:从版本库的暂存区中提交到版本库的分支上
git commit --amend -m "commit说明"
:在最近一次提交的基础上做增量的提交,用于修改最近一次提交的信息
但需注意:git commit --amend
修改的是最近一次提交,也就是说,它会创建一个新的提交,并使之前的提交变得不可见(对其他人而言)。
如果你已经将提交推送到远程仓库,且其他人可能基于这个提交进行了工作,那么不应该使用 git commit --amend
,因为它会改变历史记录,导致其他人的工作与远程仓库不匹配。在这种情况下,应该创建一个新的提交来进行补充或修正
。
👉 提交记录查看:
git log
: 显示提交记录,但是比较繁杂,显示的较多
git log -n
:显示提交记录中的前n条
git log --pretty=oneline /git log --oneline:
非常精简的显示记录
git log --graph
:以图像的形式显示log,并不建议使用
👉 临时存储:
git stash
: 将当前工作区所有修改过的内容临时存储起来,将工作区还原到当前版本未修改过的状态。用在什么地方呢?你正在本地开发的时候,主线上的爆了bug需要处理,但是我现在已经开发了一截子,这个时候可以先临时保存一下,然后git pull一下去修改
git stash list
:查看存储的所有记录
git stash clear
:清空临时
git stash pop
;将存储的第一个记录重新拿到工作区
git stash apply 编号
:将指定编号记录重新拿到工作区
git stash drop 编号
:删除指定编号的存储记录
👉 分支创建与切换:
git branch 分支名称
:创建分支
git checkout 分支名称
:切换分支
git branch -m 分支名称
:创建并切换到指定分支
git branch
:查看所有分支
git branch -d 分支名称
:删除分支
git merge 分支名称
:将指定分支合并到当前分支(一般用的最多的是git merge origin/master这种形式)
git merge的时候有个需要注意的点就是,比如你在develop分支上完成开发任务之后要往master分支合并,这个时候你先切换到master分支去,然后再用git merge develop去合并分支就好了
👉版本库与远程仓库的交互:
git remmote add origin 地址
:给远程地址起别名
git push origin master
:将版本库master分支内容推到别名为origin的远程仓库中
git push origin dev
:将版本库devr分支内容推到别名为origin的远程仓库中
git clone https://github.com
: 将项目从GitHub中克隆到工作区
git branch dev origin/dev
:工作区创建dev分支并且与远程dev分支同步
git pull origin master
:同步/合并 远程仓库(origin)的master分支到当前本地所在的分支
该命令实际上是两个Git操作的组合:git fetch origin master
和 git merge origin/master
git fetch origin master
:首先,Git会从远程仓库 origin/maser 拉取最新的提交和其他引用信息,并将它们存储在本地的 .git 目录下的远程追踪分支 origin/master,但需要注意git fetch是从远程仓库的分支上拉取到版本库中的分支上
,所以在工作区文件中看不到的变化的,然后执行下面的git merge
git merge origin/master
:随后,Git会尝试将远程分支 origin/master 的最新内容与当前所在本地分支进行合并。如果远程分支上有新的提交,这些提交将被合并到当前分支,从而使你的本地分支与远程分支保持同步。
所以,当执行 git pull origin master 时,意图是获取并远程仓库 origin 上 master 分支的最新更改,并将这些更改合并到你的当前工作分支。如果当前分支就是 master,那么这个命令会直接更新本地 master 分支;如果不是,那么这个命令会在合并时不改变当前分支,而是将 origin/master 的内容合并进来。在合并过程中,如果有冲突需要解决,Git会提示手动解决冲突后再提交。
此外还有个问题,如果远程仓库地址别名起的太多了,可以通过下面的手段来处理
git remote -v
:查看所有地址以及对应的别名
git remote remove
: 别名:删掉某个别名
👉版本回退:
有一个点不知道悟的对不对,版本回退已经跟远程仓库没有关系了,概念清晰一点
git reset 进行版本回退的时候有三种模式:--hard --soft --mixed
git reset --hard HEAD^1
:版本回退到上一次记录
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard commitID
:根据commitID去提交
现在有个问题,我已经版本回退了,如果我想再退回去,怎么办呢?可以使用下面的命令:
git reflog
:可以查看到所有的记录,包括git reset、git checkout、git rebase等操作引起的HEAD变动,便于找到丢失的提交、回退到特定状态的等等
git reflog查到回退之前的commit,然后在git reset --hard回退过去就好了
版本回退里面最常用的就是git reset --hard HEAD^m/commitID
的这种形式
当然还有两种形式
git reset --mixed
and git reset --soft
,但是这两种真的没咋用过,也不咋会,先放着日后通了再来
👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇
下面是一些文章和书籍,感觉很不错,如果觉得还行,可以阅览一番。
武sir这篇文章稍微直观一些,实测与开发中更相似https://www.cnblogs.com/wupeiqi/p/7295372.html
廖sir这篇也不错,如果非要选其一的话,选武sir吧😎https://www.liaoxuefeng.com/
一本很好不错的书:progit https://git-scm.com/book/zh/v2
2 Ubuntu与gitee的初次配置
首先要在ubuntu上安装git
apt install git
除了保证要在ubuntu安装git之外,还需要在Ubuntu上生成公钥,然后复制在仓库中才算是成功的
进行一些git配置:配置用户名 git config --global user.name “your name”
配置邮箱 git config --global user.email “your email”
查看配置信息 git config --global --list
在Ubuntu中获取ssh密钥:
ssh-keygen -t rsa -C "your email"
(此处的your email跟前面的保持一致即可,其实也没有特殊的含义)
按照提示完成三次回车(只回车,不建议做其他操作),即可生成 ssh key,注意生成下面这个文件。
获取密钥:
cat ~/.ssh/id_rsa.pub
(.pub说明这个是公钥)
将密钥复制到gitee仓库设置中的gitee公钥中即可