Git-笔记

01.Git 初识

  1. 概念:一个免费开源,分布式的代码版本控制系统,帮助开发团队维护代码

  2. 作用:记录代码内容,切换代码版本,多人开发时高效合并代码内容

  3. 如何学:

    个人本机使用:Git 基础命令和概念

    多人共享使用:团队开发同一个项目的代码版本管理

Windows系统:exe 程序,默认下一步即可

Mac系统:dmg 程序,默认下一步即可

检验成功:

1.打开 bash 终端(git 专用)

2.命令:git -v(查看版本号)


配置:用户名和邮箱,应用在每次提交代码版本时表明自己身份

命令:

1
2
3
git config --global user.name “itheima”

git config --global user.email “itheima@itcast.cn”

查看作者信息 git config –list

  1. 为何学习 Git ?

管理代码版本,记录,切换,合并代码

  1. Git 学习:

现在本机自己使用

再学习多人共享使用

  1. 如何安装使用?

程序双击安装

在 VSCode 中使用 bash 终端以及 git 命令

02.Git 仓库

Git 仓库(repository):记录文件状态内容的地方,存储着修改的历史记录

  • 创建:
  1. 把本地文件夹转换成 Git 仓库:命令 git init

  2. 从其他服务器上克隆 Git 仓库

  • 需求:创建一个空白的 Git 仓库
  1. 什么是 Git 仓库 ?
    记录文件状态内容和历史记录的地方(.git 文件夹)

  2. 如何创建 Git 仓库?
    把本地文件夹转换成 Git 仓库:命令 git init

从其他服务器上克隆 Git 仓库

03.Git 的三个区域

Git 使用时:

工作区:实际开发时操作的文件夹

暂存区:保存之前的准备区域(暂存改动过的文件)

版本库:提交并保存暂存区中的内容,产生一个版本快照

命令 作用
git add 文件名 暂存指定文件
git add . 暂存所有改动的文件
git commit -m “注释说明” 提交并保存,产生版本快照

需求:把登录页面新增后,暂存并提交

git ls-files 暂存区记录了哪些文件

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\85255\Desktop\git_ceshi> git add page/login/index.html
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
page/login/index.html
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "1.第一次提交测试"
[master (root-commit) 8321801] 1.第一次提交测试
3 files changed, 29 insertions(+)
create mode 100644 index.html
create mode 100644 index.md
create mode 100644 page/login/index.html
PS C:\Users\85255\Desktop\git_ceshi>

  1. Git 使用时有哪些区域 ?
    工作区,暂存区,版本库

  2. 工作区的内容,最终要如何保存在版本库中?

git add 添加到暂存区

等待时机后 git commit 提交保存到版本库,产生一次版本快照记录

04.Git 文件状态

Git 文件 2 种状态:

未跟踪:新文件,从未被 Git 管理过

已跟踪:Git 已经知道和管理的文件

文件状态 概念 场景
未跟踪(U) 从未被 Git 管理过 新文件
新添加(A) 第一次被 Git 暂存 之前版本记录无此文件
未修改(‘’) 三个区域统一 提交保存后
已修改(M) 工作区内容变化 修改了内容产生
  • 使用:修改文件,暂存,提交保存记录,如此反复

  • 需求:新增 css 文件,并使用 git status -s 查看文件状态,并最终提交

第一列是暂存区状态
第二列是工作区状态

  1. Git 文件状态分为哪 2 种 ?
    未跟踪和已跟踪(新添加,未修改,已修改)

  2. 如何查看暂存区和工作区文件状态?
    git status -s

1
2
3
4
5
6
7
8
9
10
11
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git status -s
A page/login/index.css
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git status -s
A page/login/index.css
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "2.css样式"
[master 174c672] 2.css样式
1 file changed, 5 insertions(+)
create mode 100644 page/login/index.css
PS C:\Users\85255\Desktop\git_ceshi>

05.Git 暂存区作用

暂存区:暂时存储,可以临时恢复代码内容,与版本库解耦

暂存区 -> 覆盖 -> 工作区,命令:git restore 目标文件(注意:完全确认覆盖时使用)

从暂存区移除文件,命令:git rm --cached 目标文件

  1. 如何移除暂存区已暂存的文件?
    git rm –cached 目标文件

暂存区 -> 覆盖 -> 工作区

1
PS C:\Users\85255\Desktop\git_ceshi> git restore page/login/index.css

移除暂存区已暂存的文件

1
2
3
4
PS C:\Users\85255\Desktop\git_ceshi> git rm --cached page/login/index.css 
rm 'page/login/index.css'
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
page/login/index.html

06.练习-登录页面

  • 需求:新增 JS 代码并暂存提交产生新的版本快照

步骤

  1. 新增 js 文件和内容
  2. 临时存放在暂存区
  3. 提交保存到版本库

1
2
3
4
5
6
7
8
9
10
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
page/login/index.css
page/login/index.html
page/login/index.js
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "3.登录页面-开发完毕"
[master 34b57ad] 3.登录页面-开发完毕
3 files changed, 3 insertions(+), 20 deletions(-)
create mode 100644 page/login/index.js
PS C:\Users\85255\Desktop\git_ceshi>

07.Git-切换版本

  • 概念:把版本库某个版本对应的内容快照,恢复到工作区/暂存区

  • 查看提交历史:git log --oneline

  • 回退命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    git reset --soft 版本号(其他文件未跟踪)

    git reset --hard 版本号

    git reset --mixed 版本号 (与 git reset 等价)

    注意1:只有记录在版本库的提交记录才能恢复

    注意2:回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)

  1. 什么是 Git 回退版本?
    把版本库某个版本对应的内容快照,恢复到工作区/暂存区

  2. 强制覆盖暂存区和工作区的命令?
    git reset –hard 版本号

  3. 如何查看提交历史?
    git log –oneline

git reflog –oneline

可直接回退

git reset –hard 版本号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PS C:\Users\85255\Desktop\git_ceshi> git log --oneline
34b57ad (HEAD -> master) 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi> git reset --soft 8321801
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
page/login/index.css
page/login/index.html
page/login/index.js
PS C:\Users\85255\Desktop\git_ceshi> git reset --mixed 8321801
Unstaged changes after reset:
M page/login/index.html
PS C:\Users\85255\Desktop\git_ceshi> git reset --hard 8321801
HEAD is now at 8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi> git log --oneline
8321801 (HEAD -> master) 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>

PS C:\Users\85255\Desktop\git_ceshi> git reflog --oneline
8321801 (HEAD -> master) HEAD@{0}: reset: moving to 8321801
8321801 (HEAD -> master) HEAD@{1}: reset: moving to 8321801
8321801 (HEAD -> master) HEAD@{2}: reset: moving to 8321801
34b57ad HEAD@{3}: commit: 3.登录页面-开发完毕
174c672 HEAD@{4}: commit: 2.css样式
8321801 (HEAD -> master) HEAD@{5}: commit (initial): 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>

PS C:\Users\85255\Desktop\git_ceshi> git reset --hard 34b57ad
HEAD is now at 34b57ad 3.登录页面-开发完毕
PS C:\Users\85255\Desktop\git_ceshi> git reset --hard 8321801
HEAD is now at 8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>

08.删除文件

  • 需求:删除 editor.js 文件,并产生一次版本记录

步骤:

  1. 手动删除工作区文件
  2. 暂存变更/手动删除暂存区文件造成变更
  3. 提交保存
  • 总结:
    工作区只要改变,都可以暂存提交产生新记录

clear 清除 清屏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
PS C:\Users\85255\Desktop\git_ceshi> git reset --hard 34b57ad
HEAD is now at 34b57ad 3.登录页面-开发完毕
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "add-utils文件夹”
[master 377fb90] add-utils文件夹
8 files changed, 88 insertions(+), 17 deletions(-)
delete mode 100644 index.html
delete mode 100644 page/login/index.css
delete mode 100644 page/login/index.html
delete mode 100644 page/login/index.js
create mode 100644 utils/alert.js
create mode 100644 utils/auth.js
rename index.md => utils/password.txt (100%)
create mode 100644 utils/request.js
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
utils/alert.js
utils/auth.js
utils/password.txt
utils/request.js
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git ls-files
utils/alert.js
utils/auth.js
utils/request.js
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "4.登陆页面-删除editor.js"
[master ad5948e] 4.登陆页面-删除editor.js
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 utils/password.txt
PS C:\Users\85255\Desktop\git_ceshi> git log --oneline
ad5948e (HEAD -> master) 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>

09.忽略文件

  • 概念:.gitignore 文件可以让 git 彻底忽略跟踪指定文件

  • 目的:让 git 仓库更小更快,避免重复无意义的文件管理

例如:

  1. 系统或软件自动生成的文件
  2. 编译产生的结果文件
  3. 运行时生成的日志文件,缓存文件,临时文件等
  4. 涉密文件,密码,秘钥等文件

创建:

  1. 项目根目录新建 .gitignore 文件

  2. 填入相应配置来忽略指定文件

  • 注意:如果文件已经被暂存区跟踪过,可以从暂存区移除即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "5.添加忽略文件"
[master 6070949] 5.添加忽略文件
1 file changed, 7 insertions(+)
create mode 100644 .gitignore
PS C:\Users\85255\Desktop\git_ceshi> git log --oneline
6070949 (HEAD -> master) 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>

10.分支的概念

  • 概念:本质上是指向提交节点的可变指针,默认名字是 master

  • 注意:HEAD 指针影响工作区/暂存区的代码状态

  • 场景:开发新需求 / 修复 Bug,保证主线代码随时可用,多人协同开发提高效率

例如:

在现有代码上创建新分支完成内容列表业务

突然需要紧急修复 Bug - 单独创建分支解决 Bug

  • 需求:创建内容列表 content 分支,并产生 3 次提交记录

步骤:

  1. 创建分支命令:git branch 分支名

  2. 切换分支命令:git checkout 分支名

  3. 工作区准备代码并暂存提交,重复 3 次

1
2
3
4
5
6
7
8
9
1.什么是 Git 分支?
指针,指向提交记录

2.HEAD 指针的作用?
影响暂存区和工作区的代码

3.如何创建和切换指针?
git branch 分支名
git checkout 分支名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git branch content
PS C:\Users\85255\Desktop\git_ceshi> git checkout content
Switched to branch 'content'
PS C:\Users\85255\Desktop\git_ceshi> git branch
* content
master
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "6.内容页面-标签搭建"
[content a9574bc] 6.内容页面-标签搭建
1 file changed, 1 insertion(+)
create mode 100644 content/index.html
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "7.内容页面-样式编写"
[content f03f7d5] 7.内容页面-样式编写
1 file changed, 1 insertion(+)
create mode 100644 content/index.css
PS C:\Users\85255\Desktop\git_ceshi> git add .
PS C:\Users\85255\Desktop\git_ceshi> git commit -m "8.内容页面-js功能编写"
[content 819ebc3] 8.内容页面-js功能编写
1 file changed, 1 insertion(+)
create mode 100644 content/index.js
PS C:\Users\85255\Desktop\git_ceshi> git log --oneline
819ebc3 (HEAD -> content) 8.内容页面-js功能编写
f03f7d5 6.内容页面-样式编写
a9574bc 6.内容页面-标签搭建
6070949 (master) 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试
PS C:\Users\85255\Desktop\git_ceshi>
PS C:\Users\85255\Desktop\git_ceshi> git checkout master
Switched to branch 'master'
PS C:\Users\85255\Desktop\git_ceshi> git checkout content
Switched to branch 'content'
PS C:\Users\85255\Desktop\git_ceshi>

11.练习-登录 bug 修复

  • 需求:新建 login-bug 分支,做 2 次提交记录(对手机号长度,验证码长度做判断)

步骤:

  1. 切回到主分支:git checkout master
  2. 创建新分支:git branch login-bug
  3. 切换新分支:git checkout login-bug
  4. 修改代码,暂存,提交产生版本记录
  5. git add .
  6. git commit -m “9.登陆bug”
  7. git log –oneline

12.分支-合并与删除

  • 需求:把 login-bug 合并回到 master 分支并删除 login-bug 分支

步骤:

  1. 切回到要合入的分支上:git checkout master
  2. 合并其他分支过来:git merge login-bug
  3. 删除合并后的分支指针:git branch -d login-bug

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git log --oneline
0dd03bc (HEAD -> master, login-bug) 9.登陆bug
6070949 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch -d login-bug
Deleted branch login-bug (was 0dd03bc).

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch
content
* master

13.分支-合并与提交

  • 合并提交:发生于原分支产生了新的提交记录后,再合并回去时发生,自动使用多个快照记录合并后产生一次新的提交

步骤:

  1. 切回到要合入的分支上:git checkout master
  2. 合并其他分支过来:git merge content
  3. 删除合并后的分支:git branch -d content

  • 最后合并回到主分支上时,提交记录流程图:

注意:提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git merge content
Merge made by the 'ort' strategy.
content/index.css | 1 +
content/index.html | 1 +
content/index.js | 1 +
3 files changed, 3 insertions(+)
create mode 100644 content/index.css
create mode 100644 content/index.html
create mode 100644 content/index.js

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git log --oneline
b9b3f16 (HEAD -> master) Merge branch 'content'
0dd03bc 9.登陆bug
819ebc3 (content) 8.内容页面-js功能编写
f03f7d5 6.内容页面-样式编写
a9574bc 6.内容页面-标签搭建
6070949 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch -d content
Deleted branch content (was 819ebc3).

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch
* master

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git log --oneline
b9b3f16 (HEAD -> master) Merge branch 'content'
0dd03bc 9.登陆bug
819ebc3 8.内容页面-js功能编写
f03f7d5 6.内容页面-样式编写
a9574bc 6.内容页面-标签搭建
6070949 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$

14.分支-合并冲突

  • 需求1:基于 master 新建 publish 分支,完成发布文章业务,然后修改内容页面的 html 文件的 title 标签,并提交一次

  • 需求2:切换到 master,也在修改内容页面的 html 文件的 title 标签,并提交一次

  • 冲突:把 publish 分支合并到 master 回来,产生合并冲突
  • 概念:不同分支中,对同一个文件的同一部分修改,Git 无法干净的合并,产生合并冲突

解决:

  1. 打开 VSCode 找到冲突文件并手动解决

  2. 解决后需要提交一次记录

避免:(多交流)

  1. 按页面划分不同分支开发

  2. 公共代码在统一文件夹维护

  3. Node等软件版本统一,npm 包统一下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch publish

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git checkout publish
Switched to branch 'publish'

85255@RuiB MINGW64 ~/Desktop/git_ceshi (publish)
$ git add .

85255@RuiB MINGW64 ~/Desktop/git_ceshi (publish)
$ git commit -m "12.开发了发布文章页面"
[publish 2bf03f5] 12.开发了发布文章页面
1 file changed, 1 insertion(+), 1 deletion(-)

85255@RuiB MINGW64 ~/Desktop/git_ceshi (publish)
$ git checkout master
Switched to branch 'master'

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git add .

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git commit -m "13.修改了内容标题"
[master 6563a47] 13.修改了内容标题
1 file changed, 1 insertion(+), 1 deletion(-)

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git merge publish
Auto-merging page/content/index.html
CONFLICT (content): Merge conflict in page/content/index.html
Automatic merge failed; fix conflicts and then commit the result.

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master|MERGING)
$ git add .

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master|MERGING)
$ git commit -m "解决了content页面标题冲突,保留了master自己的"
[master a69b8ff] 解决了content页面标题冲突,保留了master自己的

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git log --oneline
a69b8ff (HEAD -> master) 解决了content页面标题冲突,保留了master自己的
6563a47 13.修改了内容标题
2bf03f5 (publish) 12.开发了发布文章页面
b9b3f16 Merge branch 'content'
0dd03bc 9.登陆bug
819ebc3 8.内容页面-js功能编写
f03f7d5 6.内容页面-样式编写
a9574bc 6.内容页面-标签搭建
6070949 5.添加忽略文件
ad5948e 4.登陆页面-删除editor.js
377fb90 add-utils文件夹
34b57ad 3.登录页面-开发完毕
174c672 2.css样式
8321801 1.第一次提交测试

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git branch -d publish
Deleted branch publish (was 2bf03f5).

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$

15.Git 常用命令

命令 作用 注意
git -v 查看 git 版本
git init 初始化 git 仓库
git add 文件标识 暂存某个文件 文件标识以终端为起始的相对路径
git add . 暂存所有文件
git commit -m ‘说明注释’ 提交产生版本记录 每次提交,把暂存区内容快照一份
git status 查看文件状态 - 详细信息
git status -s 查看文件状态 - 简略信息 第一列是暂存区状态,第二列是工作区状态
git ls-files 查看暂存区文件列表
git restore 文件标识 从暂存区恢复到工作区 如果文件标识为 . 则恢复所有文件
git rm –cached 文件标识 从暂存区移除文件 不让 git 跟踪文件变化
git log 查看提交记录 - 详细信息
git log –oneline 查看提交记录 - 简略信息 版本号 分支指针 提交时说明注释

git init

git add .

git commit -m ‘说明注释’

git log –oneline

命令 作用 注意
git reflog –oneline 查看完整历史 - 简略消息 包括提交,切换,回退等所有记录
git reset 版本号 切换版本代码到暂存区和工作区 –soft 模式保留暂存区和工作区原本内容 –hard 模式不保留暂存区和工作区原本内容 –mixed 模式不保留暂存区,工作区保留(默认) 先覆盖到暂存区,再用暂存区对比覆盖工作区
git branch 分支名 创建分支
git branch 查看本地分支
git branch -d 分支名 删除分支 请确保记录已经合并到别的分支下,再删除分支
git checkout 分支名 切换分支
git checkout -b 分支名 创建并立刻切换分支
git merge 分支名 把分支提交历史记录合并到当前所在分支

git reflog –oneline

git branch 分支名

git checkout 分支名

git merge 分支名

16.Git 远程仓库

  • 概念:托管在因特网或其他网络中的你的项目的版本库

  • 作用:保存版本库的历史记录,多人协作

  • 创建:公司自己服务器 / 第三方托管平台(Gitee,GitLab,GitHub…)

  • 需求:创建远程版本库,并把本地 Git 仓库推送上去保存

步骤:

  1. 注册第三方托管平台网站账号
  2. 新建仓库得到远程仓库 Git 地址
  3. 本地 Git 仓库添加远程仓库原点地址
  1. 本地 Git 仓库推送版本记录到远程仓库
  • 命令:git push -u 远程仓库别名 本地和远程分支名
    例如:git push -u origin master
  • 完整写法:git push –set-upstream origin master:master

1
2
3
4
5
6
7
8
9
10
1.远程版本库的作用?
保存提交历史记录,多人共享

2.远程版本库使用步骤?
创建远程版本库(自己服务器/第三方托管平台)
本地版本库设置远程地址
推送本地版本库到远程

3.推送的命令?
git push -u origin master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git init
Reinitialized existing Git repository in C:/Users/85255/Desktop/git_ceshi/.git/

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git remote add origin https://gitee.com/dai-ruibin/git_ceshi.git

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git remote -v
origin https://gitee.com/dai-ruibin/git_ceshi.git (fetch)
origin https://gitee.com/dai-ruibin/git_ceshi.git (push)

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git remote remove origin

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git remote -v

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git remote add origin https://gitee.com/dai-ruibin/git_ceshi.git

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git push -u origin master
fatal: Custom certificate bundle not found at path: D:/鏉烆垯娆㈢€瑰顥?Git/mingw64/etc/ssl/certs/ca-bundle.crt
fatal: Custom certificate bundle not found at path: D:/鏉烆垯娆㈢€瑰顥?Git/mingw64/etc/ssl/certs/ca-bundle.crt
Enumerating objects: 77, done.
Counting objects: 100% (77/77), done.
Delta compression using up to 6 threads
Compressing objects: 100% (68/68), done.
Writing objects: 100% (77/77), 101.33 KiB | 5.33 MiB/s, done.
Total 77 (delta 13), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/dai-ruibin/git_ceshi.git
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$

17.Git 远程仓库 - 克隆

效果:在运行命令所在文件夹,生成 work 项目文件夹(包含版本库,并映射到暂存区和工作区)

  • 注意1:Git 本地仓库已经建立好和远程仓库的链接
  • 注意2:仓库公开随意克隆,推送需要身为仓库团队成员

cmd

右键Open Git Bash here

18.多人协同开发

  • 需求:小传新代码共享给小智

步骤:

  1. 小传开发代码 -> 工作区 -> 暂存区 -> 提交 -> 拉取(可选)-> 推送
  2. 小智 -> 拉取(后续也可以开发代码 -> … -> 推送)
  3. 想要看到别人同步上去的最新内容:git pull origin master 等价于

git fetch origin master:master(获取远程分支记录到本地,未合并)
git merge origin/master (把远程分支记录合并到所在分支下)

同文件更改
小传上传

git add .
git commit -m “小传-登录界面标题123456”
git push origin master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
PS C:\Users\85255\Desktop\代码和笔记\克隆使用\git_ceshi> git add .
PS C:\Users\85255\Desktop\代码和笔记\克隆使用\git_ceshi> git commit -m "小传-登录界面标题123456"
[master 08d82be] 小传-登录界面标题123456
1 file changed, 2 insertions(+), 2 deletions(-)
PS C:\Users\85255\Desktop\代码和笔记\克隆使用\git_ceshi> git push origin master
fatal: Custom certificate bundle not found at path: D:/鏉烆垯娆㈢€瑰顥?Git/mingw64/etc/ssl/certs/ca-bundle.crt
fatal: Custom certificate bundle not found at path: D:/鏉烆垯娆㈢€瑰顥?Git/mingw64/etc/ssl/certs/ca-bundle.crt
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 6 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 576 bytes | 576.00 KiB/s, done.
Total 5 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/dai-ruibin/git_ceshi.git
a69b8ff..08d82be master -> master
PS C:\Users\85255\Desktop\代码和笔记\克隆使用\git_ceshi>

小智,同文件更新,小传上传的—这里pull

git pull origin master

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$ git pull origin master
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 5 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (5/5), 556 bytes | 39.00 KiB/s, done.
From https://gitee.com/dai-ruibin/git_ceshi
* branch master -> FETCH_HEAD
a69b8ff..08d82be master -> origin/master
Updating a69b8ff..08d82be
Fast-forward
page/login/index.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

85255@RuiB MINGW64 ~/Desktop/git_ceshi (master)
$

19.VSCode 中使用 Git

使用:源代码管理,进行暂存,撤销,对比差异,提交等操作

注意:VSCode 打开的项目文件夹下需要有 .git 仓库

一般用代码终端获取推送

20.案例

  • 需求:把 Webpack 压缩好的 dist 分发文件夹网页,部署到码云上,开启 Page 服务在互联网中浏览

步骤:

  1. 初始化本地 Git 仓库(这次是非空文件夹-配套素材 dist 文件夹)
  2. 初始化远程 Git 仓库(这一次也是非空的)
  3. 本地配置远程仓库链接
  4. 本地拉取合并一下(确认本地要包含远程内容时使用)
  5. 本地推送到远程 Git 仓库
  6. 开启 page 网页服务得到地址浏览

21.Git 常用命令

命令 作用 注意
git remote add 远程仓库别名 远程仓库地址 添加远程仓库地址 别名唯一,地址是 .git 结尾的网址
git remote -v 查看远程仓库地址
git remote remove 远程仓库别名 删除远程仓库地址
git pull 远程仓库别名 分支名 拉取 完整写法:git pull 远程仓库别名 远程分支名:本地分支名 等价于:git fetch 和 git merge
git push 远程仓库别名 分支名 推送 完整写法:git push 远程仓库别名 本地分支名:远程分支名 -u:建立通道后以后可以简写 git push
git pull –rebase 远程仓库别名 分支名 拉取合并 合并没有关系的记录
git clone 远程仓库地址 克隆 从0得到一个远程的Git仓库到本地使用

配置

配置系统环境变量

  1. 找到 git 安装路径下的 bin 文件路径,复制路径

  2. 右键我的电脑属性高级系统环境变量

  3. 点击 path– 新建- –粘贴刚才复制的安装路径应用确定

配置账户信息

在电脑的终端中

  • git config –global user . name“git 用户名”
  • git config –global user . email “注册 git 的邮箱号”
  • git config –global user. pas sword “git 的登录密码”
  • git config –list 查看当前 git 的用户信息
  • git config –global –unset user. emil 删除配置

常用命令

  • git init:初始化仓库
  • git remote add origin 线上仓库的地址(选择 https) :为本地仓库绑定一个远程仓库
  • git remote -V: 查看本地绑定的远程仓库
  • git clone 线上仓库地址:克隆仓库
经典四步走
  1. git add .:将文件提交到暂存区
    • .:表示将当前目录下所有的文件提交到暂存区
    • git add 文件名:将文件提交到暂存区
  2. git commit -m “注释”:将代码提交到本地仓库
  3. git push: 将本地仓库的代码上传到远程仓库
    • git push –set-upstream origin master: 第一次 push 时,需要执行这个命令
  4. git pull: 用于远程代码和本地代码不同步时使用,如果远程代码与现有-致则不需要走这一步。
  • git pull origin main –allow-unrelated-histories
  • git pull origin master –allow-unrelated-histories
  • 使用此命令告诉 git 允许不相关历史合并,这样就能把远程文件拉取回来
    • git push -f
      • 强制将本地文件推送至远程,这样会将远程仓库的已有的文件清掉

分支操作

  • git branch: 查看当前所在分支
  • git branch 分支名:创建分支
  • git checkout 分支名:切换分支
  • git checkout -b 分支名:创建并切换分支
  • git branch -d 分支名:删除本地分支
  • git push origin –delete 分支名:删除远程分支
  • git merge 分支名:合并分支

git上传步骤

  • git init
    初始化仓库
  • git remote add origin https://gitee.com/kern/class.git
    线上仓库的地址(选择 https) :为本地仓库绑定一个远程仓库
  • git add .
    将文件提交到暂存区
  • git commit -m “789”
    “注释”:将代码提交到本地仓库
  • git checkout -b dair
    创建并切换分支
  • git push –set-upstream origin dair
    第一次 push 时,需要执行这个命令
  • git branch
    查看当前所在分支
  • git pull origin main –allow-unrelated-histories
    使用此命令告诉 git 允许不相关历史 合并 ,这样就能把远程文件拉取回来

其他命令

  • git stash save “注释”:隐藏当前的工作进度,并添加一个注释
  • git stash:隐藏当前的工作进度
  • git stash list: 查看所有隐藏的工作进度
  • git stash apply n:将隐藏的代码显示回来。n 表示代码进度的 id
  • git stash drop n: 删除暂存的代码进度。n 表示代码进度的 id

终端常用命令

  • clear:清屏
  • mkdir 文件夹名字:创建文件夹
  • touch 文件名字:创建文件
  • cd 文件路径:切换当前所在的文件路径
  • :Wq: 保存并退出
  • Pwd:显示当前目录的路径名

git commit 注释内容常用词

  • feat:新功能
  • fix:修复
  • refactor:重构
  • test:测试

git checkout -b test
git add .
git commit -m “sczy”
git push -u origin test

之后上传

git add .
git commit -m “sczy”
注释
git push