Git的基本操作
git的初始化操作
-
安装好git后:
git version
查看git版本,检测是否安装成功 -
一些dos命令:
pwd
–显示当前目录ls
–显示当前目录下的文件cd ..
–回退上一级目录cd directory
–切换目录clear
–清除历史记录 -
git config --global user.name [" "]
:查看[设置]用户名 -
git config --global user.email [" "]
:查看[设置]用户邮箱 -
git init
:在当前目录初始化一个仓库
git的提交操作
-
git add 文件名
:把文件上传到暂存区 -
git add .
:(一般就用这个)上传当前目录所有文件到暂存区 -
git add *
:上传当前目录全部非隐藏文件到暂存区 -
git add .*
:上传当前目录全部隐藏文件到暂存区 -
git commit
:把当前保存的文件提交固定成一个版本-
试一下会vim的终端编辑器写提交说明(备注)(我咋没有,我点了vs右上角加号才推出)
-
按i/a进入编辑模式,写好后按Esc退出编辑模式,按下英文冒号:,输入wq回车,保存退出
-
-
git都是按行来对比文件不同的,就两种情况:新增,删除(如果是同一行的修改,那就是同时删除一行,新增一行)
-
git log
:查看提交信息(日志),每次提交都会记录日志信息-
提交格式:commit之后一大串随机id作为唯一标识,author是作者(是所设置的用户名和邮箱),在下面就是刚刚写的提交说明
-
当commit(提交)比较多,git log 的内容在一页显示不完整,满屏放不下的时候,就会显示冒号。
-
回车(往下滚一行)、空格(往下滚一页)可以继续查看剩余内容。
-
退出:英文状态下 按 q 可以退出git log 状态
-
-
VSCode提示:新增文件显示绿色,修改文件显示橙色M(Modified),以示和上次提交的数据不一样
-
git commit -m ""
:写提交说明的简化版操作,这样会跳过vim编辑,大部分人会用这种方式写提交说明-
git commit -m "fix(test):change content"
:一种提交说明风格规范,不是硬性要求,为了让别人一目了然你的修改内容(修复(文件):修复了……(改变内容)) -
如果要参与一个国际项目,一个规范的提交信息和英文是必要的,其他的规范词可以搜索git commit规范词自行了解,自己项目能看懂就行
-
-
vscode页面化操作,作出修改,点击左边的git菜单,点击文件就能对比修改的内容,点击上方√号,就能提交,提示没有暂存的更改,是否暂存更改,点是就能执行git add .和git commit 了,再在上面输入commit说明按下回车就commit完成了
-
vscode自带git所有基本操作,高级操作需安装git history diff插件查看所有历史记录
git的版本控制操作
-
git reset --hard 提交id
:回退到历史提交状态,会清空历史记录-
reset是重置的意思
-
–hard是重置模式:hard表示硬重置,即覆盖所有变更
-
另外还有soft模式和默认的mixed模式
-
-
但是只是想要切换版本该怎么办呢,这时候就可以用分支branch,顾名思义,分支就是把当前版本复制一份当作新的版本分支
-
git branch 分支名
:就可以当前版本创建一个分支 -
git branch -a
:查看当前已有的分支,master是主分支。 -
git checkout 分支名
:切换到新的分支 -
你可以在主分支上和分支上写代码,然后某一天把这两个分支用git merge合在一起,一个人用处不大,但在团队协作用处就大了,一个团队开发的项目离不开分支
-
比如说:一个项目现有1.0版本,但要1.1版本要新增五个功能,就让五个成员分别去写这五个功能:让他们新建一个分支去,分别去开发这五个功能,最后开发好了再合并起来(git merge),再提交并使用git tag(tag命令创建固定版本)打标签生成1.1版本,团队开发互不影响,但又可以同时协作
-
形象的解释:文档1.0复制给5个人去增加5个新功能(branch),然后再把他们各自写好的功能收上来,复制粘贴他们各自写得功能(merge),最终形成1.1版本并保存(commit,tag)
远程仓库
-
团队协作肯定不能在同一台电脑上,最好在一个服务器上,这个服务器可以自己搭建,但是还是公用的省事:github/gitee(简单来说就是可以git操作的网盘)
-
github上new了一个repositoty,之后会有些教程,上传提交之后,
-
1.
git branch -M main
:创建主分支并把主分支切换为main -
2.
git remote add origin 仓库url(你的仓库链接)
:添加一个远程仓库地址(相当于给这个git项目设置一个网盘地址,让它知道上传到哪里) -
3.
git push -u origin main
:push也就是上传到github,之后要登陆一下github(push后面的参数是push源和分支) -
我的代码出问题了,好像要git pull --rebase origin main ,再git push -u origin main,好像是仓库不一致导致的
-
之后刷新网页就可以发现上传成功啦
-
图片
-
git remote -v
:查看已建立的连接 -
git remote remove origin
:取消当前的远程连接
-
参与开源项目
-
来到别人的项目,点击右上角的fork:把别人的代码库复制到我的账号了,类似branch,右上角点开自己的仓库就会发现已经复制下来了
-
点击code,复制仓库的http链接
-
在电脑上新建文件夹,打开终端,然后输入:
git clone 你的仓库链接
.(把网盘上的仓库克隆到本地电脑) -
查看建立连接发现连接的是自己的,使用命令
-
git clone add upstream 别人的仓库链接
:添加上游命令,再remote -v看一下就有了 -
使用
git checkout -b kwc
来创建并切换进入kwc的分支 -
之后创建文件夹,创建文件,写入文件内容,add .,commit -m “add(number):康文昌”,push -u origin kwc,回到自己的仓库,就发现已经有这个分支了
-
这时候就来re01的仓库,点pull request:拉取请求,简称PR,进去之后点new,新建pr,这里base就是根源,选择re01的main分支,compare就是比较,选择自己刚刚创建的分支,选择后如果显示绿色对号able to merge就是可以合并的意思,那就填写pr信息:标题,内容,下面点击create创建pr,就提交成功了,这就代表参与了开源项目
-
如果没有显示对号,那就代表up提交了新的commit,导致版本不一致,这时就需要更新本地版本,
-
git fetch upstream
:从上游更新最新代码 -
然后执行:
git merge upstream/main
,把远程的最新代码合并到自己的分支中,再git push
就好了
问题记录
-
ssh连接除了好几次错误:先是22端口拒绝连接,然后我去搜,最后发现电脑只有ssh客户端,没有ssh服务器,然后下了似乎又说真实性,yes/no什么的,这里又搜了一下,是要输yes,我的443端口没问题,不是防火墙的原因,好像少了一个kown_hosts文件
-
类似下图的错误,反正yes着yes着的、差不多就好了