赞
踩
安装git和安装node、qq这种软件是一样的,到官网去下载安装就好了,记得选择正确的版本,mac和win需要下载的版本是不一样的。
熟悉环境变量的小伙伴应该了解这一步的重要性,如果没有相关经验也不要紧,配置git可以暂时理解成类似qq的登录,这个登录也是有记住密码自动登录选项的。
使用这2个命令来配置你的身份(名称和邮箱)
这个命令在终端输入,这里需要了解一下终端如何使用:打开你的终端可以看见 C:\
这样的路径,这就相当于,你打开了这个 C:\
文件夹;
当你在终端输入指令 mkdir 新建文件夹
,首先会在你这个路径下操作,也就是创建了一个文件夹,他的路径是 C:\新建文件夹
,接下来git初始化仓库等等,也是在你终端所在路径操作的;
注意到上面的指令有一个 --global
,这个指令是对git进行全局配置,他就会把你的名字和邮箱存在git自己管理的某个区域,如果不写 --global
,那就是控制你当前所在文件夹下的git仓库的信息了。
git init
可以把当前文件夹变成一个仓库,不需要联网你就可以使用大部分的功能。git clone https://github.com/nesb01t/RPALite.git
,这样就会把代码下载下来,同时也已经是一个 git 仓库。这样操作获得的2种仓库,在本地都可以使用绝大部分功能,到这里你应该已经学会了如何下载别人的开源代码了。
接下来介绍一个文件跟踪的概念,git 版本管理会追踪文件,通过追踪后续你进行的修改/删除/创建等操作,来定义不同的版本。
比如今天你写了version1.0,明天写了version1.2,git 就会发现,1.0到1.2进行了哪些更改?git 追踪的是这些文件的变动。
随后,当你修改了 跟踪中
的文件,文件便会进入 已修改
状态;
此时再输入 git add [name],他就会变成 已暂存
状态,并自动放入 git 的暂存区。
如果你手滑了,也可以输入 git reset HEAD [name],就恢复 已修改
状态了。
此时我们注意到,一个 git 仓库里实际上有4种类型的文件:
那么怎么提交暂存区的代码呢?使用命令 git commit 提交暂存,此时会有几个可能:
PS E:\CloudShip> git commit -m "Test"
[backend-dev 97a49ef] Test
1 file changed, 1 insertion(+)
如果你手滑了,输入 git reset HEAD~ --soft 就可以撤回这次提交
你可能会有疑问,这个reset是什么,head又是什么,暂时先记住前面的命令的功能,涉及到的内容后面会深入讲。
输入 git status 你就可以看到当前有哪些文件被修改过了:
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: backend/controller/auth.js
上面的 diff 指令可以看哪些文件有变动; 而使用命令 git diff 可以看到 已修改/未进入暂存区
的文件里面具体到每一行的变动。
diff --git a/backend/controller/auth.js b/backend/controller/auth.js
index 0bb29d4..71e2806 100644
--- a/backend/controller/auth.js
+++ b/backend/controller/auth.js
@@ -36,6 +36,7 @@ class AuthController {
ctx.status = 200;
ctx.body = "creating new account";
return;
+ return;
}
输入命令 git log 可以查看历史的提交记录,比如:
commit d56ba11a294d229a0993facc2591a720faa04274 (HEAD -> backend-dev)
Author: nesb01t <nesb01t@hotmail.com>
Date: Sat Apr 15 12:23:11 2023 +0800
test
这里 commit 后面的 d56ba11a294d229a0993facc2591a720faa04274 是一个哈希值,是唯一的,我们可以通过这个哈希值找到我们本次的一个提交;
下面则包含了作者,日期,提交时输入的信息。
通过 git log --pretty=oneline 可以美化我们的输出到一行,还可以自定义格式等等,请自行查阅:
791fd226f01affae4c4e6224b8760dd5799622ac update List
43e319e0fcb412c19dccc0c832ac35352a75af3b Merge pull request #35 from Nesb01t/frontend-yjh
5911ab7f3b62dea34051803ef745c59db1fceb06 Merge pull request #34 from Nesb01t/backend-dev
bdd956e133fe0a5de6b92f374a99b78385cb5b53 Update 第一周
a5132f098fbae9a7d0888818b9eedbfc1b5d90b9 Merge pull request #33 from Nesb01t/frontend-yjh
2c983d840864dd099c49e54d029c38bf41bab01b Login and studentinfo
首先你需要准备一个 github / gitee 账号,这个 github / gitee 属于 代码仓库托管平台
,git 的出现让程序员之间的协作变得更加容易,因为我们可以远程在同一段代码上进行不同的工作,最后再合并代码,这个 github / gitee 就是用来保存这坨代码的地方,而 git 是这个平台工作的核心机制。
打开 github 平台,点击 new repository 就可以新建一个仓库。
完成必要信息的填写后,注意选择 Public 就是开源,接下来你的代码将能被所有人看见,共享给 github 平台上的每一位用户。
创建成功以后,你的仓库就会获得一个专属的链接,比如 https://github.com/nesb01t/RPALite.git
git remote add origin https://github.com/nesb01t/RPALite.git
通过命令 git push [remoteName] [branchName] 可以将代码推送到远程仓库,比如 git push origin master
,意思是推送到名为 origin 的仓库,推送的分支是 master,分支将会在后面进行更细的解释。
当你连接远程仓库进行登录时,可能遇到 账号+密码
无法使用的情况,这时候可以使用更方便并且更安全的 ssh 登录,这里篇幅较多,暂时不展开讲,请感兴趣的小伙伴自行尝试 google 研究~
每次我们进行 commit 提交活动,都会产生一个哈希值,类似这样 39a14
,92c8a
的值,代表了你某次提交的整个对象;
分支就是包含了这个哈希值的文件,也可以简单理解成 指向某个提交对象的指针;
当我们初始化仓库时,也就新建了一个 master 分支; 第二次提交时,master 分支也就跟着一起进行向前的移动!
当我们新建一个分支 newBranch,在这个新建的分支上进行修改,此时就会形成2个不同的分支,一个是master,另一个是newBranch;
一般有这么几个分支:
这几个分支从下往上一层层汇到一起,形成了分支模型,比如:
commit ab829b0e37904181952f37cdddf9169b1697efae (HEAD -> master, origin/master)
Author: nesb01t <nesb01t@hotmail.com>
Date: Mon Apr 17 17:24:06 2023 +0800
Update 4月16更新
当你输入 git log,这个括号里就是我们的分支,会发现我们在 master 分支;
后面还有一个 origin/master 代表远程仓库上也是这个 master 分支;
这个 HEAD 的意思是我们现在在这个 master 分支上,而不是 origin/master 分支。
输入 git status,可以看见:
On branch master
Your branch is up to date with 'origin/master'.
代表我们现在在 master 分支上,和远端的 origin/master 同步;
常用的是输入 git branch / git branch --list 来 查看本地
有哪些分支:
backend-dev
* master
origin
其中这个带 星号 的就是我们当前所在的分支~
直接输入 git branch newBranch1,就 创建
了一个叫 newBranch1 的新分支;
backend-dev
* master
origin
newBranch1
输入 git checkout newBranch1,就 切换
到了 newBranch1 分支; 此时输入 git branch 就可以看到现在切换成功了:
backend-dev
master
origin
* newBranch1
另外输入 git checkout -b newBranch2,可以直接新建一个分支 并切换
到那个新建好的分支上~
我想让 master 和 Feature1 进行合并,怎么操作呢?
git merge Feature1
分支中的冲突:当2个分支同时修改了一个文件,即有可能产生冲突,一般提示为
Auto-merging <文件名>
CONFLICT (content): Merge conflict in test_file
Automatic merge failed; fix conflicts and then commit the result.
此时先输入 git status 确认哪里有冲突,手动解决冲突
之后 commit 即可
当你的代码写到一半,需要回到 master 分支进行操作:此时你是无法直接切换的,因为你的工作目录中有被修改的文件!
你可以通过 commit 把现在写到一半的代码进行提交,但更好的方法是直接 stash 放置到暂存区
如果你保存了好几次,即输入了好几次 git stash,你可以通过 git stash list 来回看之前提交的几次 stash 暂存区代码。
很多时候会遇到需要撤销操作,见下~
在指令 git reset head~ 中,head 指的是当前最新的一次提交,head~ 指的是 head 上一次的提交,同理可以使用 head~2 代表上上次的提交。
比如说我开发了A分支,同事开发了B分支,我们可以使用合并,也可以使用变基~
远程慎用,当你的同事在你上面盖第二层楼,你变基,等同事盖完有可能发现你这个第一层没了。
多做项目上手操作,无他唯手熟尔
本文由博客一文多发平台 OpenWrite 发布!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。