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 状态
- 提交格式:commit之后一大串随机id作为唯一标识,author是作者(是所设置的用户名和邮箱),在下面就是刚刚写的提交说明
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着的、差不多就好了