Gi第01天

一:Git

1.1 版本管理

编码的时候有些节点非常关键,那我们就可以存个档,以防出现代码丢失等意外.

结合游戏存档来理解

1.2 常见版本管理软件

a.svn(集中式)

b.git(分布式)

集中式和分布式的区别

1.2.1 git安装

​ 选中要安装的软件,

img ​ 直接一直下一步,用默认盘符就行.

​ 右键出现git bash就表示安装成功

img

1.3 git使用步骤

1.新建一个文件夹 (新建的仓库和编写的代码都写在这个文件夹中)

2.进入到文件夹, 右键 点击 Git Bash Hereimg,他就会出现一个小黑框

3.就在小黑框里写: git init (意思是初始化一个仓库)

​ 会出现一个隐藏的.git文件夹. 不要动这个文件夹.

4.吃着火锅,愉快的敲着代码..

5.git add .

​ git commit -m “描述提交的代码”

1.4 补充:

​ 如果是第一次执行add commit,会出现下面这个问题

img

​ 这个问题的意思是: 设置你邮箱和用户名, 这个问题只会在第一次出现.

​ 注意的是:设置的时候一个一个的设置设置好了后再add. commit一下, 如果git status

img

出现了nothing to commit 就表示add commit 成功了

再git log

img

查看提交日志,

​ 这一步有的时候会卡死, 如果卡死按q退出. 或者ctrl+c两次退出

==1.5 容易出现的问题 :==

1.新建编写代码的文件夹,要进到文件夹里面去之后, 右键点击git bash here

2.git init 不要写错, 出现一个.git隐藏文件夹,

​ 如果没有出现这个文件夹,检查一下自己的电脑隐藏文件夹是不是不显示.

3.我们要提交内容, 那首先得有内容. 意思就是要写点代码, 代码要和上次不一样.

4.git add .

git commit -m”描述的信息”

这两句代码 add 和后面的点 有空格. commit 和-m中间也有空格.

5.第一次提交会出现让你输入邮箱和用户名, 一行代码一行代码的执行. 复制的时候不要把后面的空格给复制来呀

6.在浏览器查看git的命令:git help --web 命令名,如浏览器浏览log的帮助,git help --web log

1.6 邮箱和用户名

1.6.1 查看邮箱和用户名

​ git config user.email

​ git config user.name

1.6.2 修改邮箱和用户名

第一种办法: 直接重新再设置一下,他就会覆盖.

​ git config –global user.email “you@example.com”

​ git config –global user.name “Your Name”

config的三个作用域

缺省等同于local

# local只对某个仓库有效
git config --local
# global对当前用户所有仓库邮箱
git config --global
# system对系统所有登录的用户有效
git config --system

显示config的配置,加–list

git config --list --local
git config --list --global
git config --system

第二种办法: 退出再登录

​ 退出:

​ git config –global –unset user.email

​ git config –global –unset user.name

推荐大家使用 github/码云gitee注册的邮箱和用户名来登录.

1.7 git版本穿梭(回滚)

命令: git reset –hard 版本号 //版本回滚的命令

img

​ 版本号就是git log查看后那个黄色的一串数字,也可以是:

​ HEAD^ 上一个版本

​ HEAD^^ 上上一个版本(上两个版本)

​ HEAD^^^ 上上上一个版本(上三个版本)

​ 例如:

​ git reset –hard HEAD^ //回到当前的上一个版本

​ git reset –hard HEAD^^ //回到当前的上上个版本

命令: git log –oneline //查看一行类型的日志,包括版本号

img

前面黄色的就是版本号

命令: git reflog //查看所有的日志,包括回滚的日志

1.7.2 重命名文件

方式1(命令较多)

mv readme readme.md
git add readme.md
git rm readme

方式2

git mv readme readme.md
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        renamed:    readme -> readme.md
$ git commit -m'Move readme to readme.md'
[master f6f9b90] Move readme to readme.md
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename readme => readme.md (100%)

1.8 本地git工作流程

img

1.9 探秘.git目录

cd .git

ll -a

cat HEAD

ref: refs/heads/master

.git 里的 HEAD 文件,说明目前工作的分支在 master。切换分支的话,HEAD 的内容会变化。 它说白了就是指当前的仓库工作在哪个分支上,是个引用。如果去编辑这个 HEAD 文件的话,其实就跟那个 git cheout 变换分支的命令是一样的。

.git 里的 config 文件,跟本地仓库相关的配置文件都在这个里。

.git 里的 refs 文件,包含有 heads 和 tags,意味着可以有很多很多标签的,有些书里也叫「里程碑」,heads 就是分支,说白了就是一个独立的开发空间,有些时候你要做前端的开发,有些时候你要做后端的开发, 那么就可以为前端建一个分支,为后端建一个分支,在各自的分支里工作,工作是互不影响的,当需要集成时,可以把 2 个分支集成到公共的分支上去。

进入 heads 文件夹里,用命令查看 master 里的内容的对象,-t 就是看它的类型:

git cat-file -t 41f3867b0c6

返回的是

commit

使用命令:

git branch -av

通过结果可以看到,master 文件里存放的其实是指,我这个 master 的指针指向哪个 commit,它存放的是这样一个信息。

.git 里的 objects 文件,里面有很多很多文件,比如进入文件夹「5d」里,把该文件名「5d」和里面的哈希值合并在一起,我们看看这个是个什么东西:

git cat-file -t 5dacd995d3dc21d6d5fcd669a8c40de7a58160d9

返回的是:

commit

git 仓库里有树「tree」的概念,跟 commit 是两种概念。

看文件类型是「- t」,看内容的话是「- p」,那么:

git cat-file -p 5dacd995d3dc21d6d5fcd669a8c40de7a58160d9

返回

tree 6a67d19d3d3119f3d48ef01d259560aeb64a147b
parent a926ba54cc5b24ba8f70ddac84f09a451145c1b2
author Landon100100 <129959392+Landon100100@users.noreply.github.com> 1704880273 +0800
committer Starry100100 <hxl100100@126.com> 1705036384 +0800

git cat-file -p 6a67d19d3d3119f3d48ef01d259560aeb64a147b

返回的结果,里面有 blob 类型的文件。

到现在就出来了 git 核心的三类对象:commit、tree 和 blob。

git 有个设定,只要任何文件的文件内容相同,在 git 眼里它就是唯一的一个 blob。

先看左边的。一个 commit 肯定会对应一棵树 tree,不会对应 2 个的。这颗树代表了什么?我取出某个 commit,这个 commit 它对应着一个视图,这个视图里存放了一个快照,该快照集合里放了当前 commit 对应的本项目仓库所有的文件夹以及文件的快照。即,那个时间点,你这个文件夹是啥样,这个文件是啥样,它就是通过这个树呈现出来的。

看中间的。我们这个树它前面的哈希值是 912fa6…我们可以看到,树里面包含树,blob 指的是具体的某个文件。

1『树给我的感觉就是文件夹。』没有文件也就是没有 blob 对象的目录是不会被 git 管理的,因为 git 要对文件进行版本管理,所以没有必要对空目录生成对象。基于这一点,readme 文件的全路径是这样:[仓库根目录]/doc/readme。那么 tree 的数量与全路径中「/」的数量一致。git的commit就像一个文件系统,一次 commit 创建一棵大树,commit 是 root 节点。

2『blob 跟文件名一点关系都没有,只要文件的内容相同,在 git 眼里,它就是一个文件,这个设计可节省空间。』

二:远程仓库

以下这些都可以作为远程仓库.

1.github

2.gitlab

3.gitee码云

4.公司的机房里某一台服务器(电脑)

5…..

2.1 github 是什么

https://github.com/

1.是一个免费的远程仓库 (我们可以把我们写的代码存在这个网站里面)

2.是一个代码托管平台,很多优秀的开源的项目都有放在github上,供大家学习/使用.

3.自嘲:”全球最大的同性交友网站”

2.2 github和git有关系吗?

没有,就是名字长得很像而已, 就像北大和北大某鸟的关系… 雷锋和雷峰塔….

git是代码版本管理工具, 同样的工具还要svn等之类的.

github是一个代码托管平台.同样的平台还有gitlab,码云gitee等….

2.3 用github远程仓库托管代码使用步骤:

使用远程仓库有2种用法: 1: 新建一个空的远程仓库, 和已经存在的本地仓库取得关联 2: 新建一个非空的远程仓库, 克隆到本地, 克隆到本地的就是本地仓库

2.3.1 第一种:gitHub新建一个空的远程仓库 关联已有的本地仓库

a. 新建远程仓库的时候, 下图Initialize this repository with a README那里不要打上勾.

img

b. 进去执行那两行命令.

git remote add origin https://github.com/penglin0613/studyGit39_01.git
git push -u origin master

c. 完成后刷新远程仓库, 就有了之前本地提交的信息.

img

d.上面那句话就是让你去新建一个readMe.md文档, 用这个文档来介绍你的项目.

e. 在本地建了一个readme.md文件, 通过git add. git commit-m”” 提交到了本地仓库, 通过git push origin master推送到远程.

术语:

fast-forwards

non fast-forwards

提示不是fast-forwards时,代表commit树没有共同的祖先,这样是不允许push到远程的。

本地时:

解决方式1:可以通过 git merge 的方式合并分支,再git push到远程。

解决方式2:通过git rebase。

远程时:

解决方式1:可以通过 git fetch 的方式获取远程分支,git merge的方式合并分支,再git push到远程。

解决方式2:通过git pull合并分支,再git push到远程。

2.3.2 第二种:创建非空github仓库,克隆到本地

1.建立远程仓库

​ 1.1

img

​ 1.2

img

2.把远程仓库克隆到本地

​ 2.1

img

​ 2.2 复制一下这个远程仓库的地址

​ 2.3 来到 本地你需要把这个仓库 放到所在地 的文件夹. 右键点击git bash here

​ 命令: git clone 仓库地址

img

git clone 仓库地址,只能克隆仓库地址

​ 出现了done就说明克隆完成, 在当前文件夹就会出现一个和远程仓库名字一毛一样的一个文件夹.

拉取分支

git fetch origin develop:develop

3.在本地编码

  1. add commit 提交到本地仓库 注意啦: 编码提交到本地,一定要进入到这个文件夹中去. 再右键点击git gitHub here 出来小黑框
  2. 推送到远程仓库 命令: git push origin master

出现了这个done就说明ok了.

2.4 如何删除gitHub仓库

a.找到你要删除的库.

b.点击Settings

img

c.

img

d.

img

e.

img

2.5 github的搜索与高级搜索(search advance)

比较常用,搜索仓库搜索代码

高级搜索

  • create:<2024-03-01 创建在 2024-03-01日之前的仓库,<2024-03-01
  • git 最好 学习 资料 in:readme 表示:搜索 git 仓库,项目 README 文件描述有关键字为‘最好 学习 资料’ 所以自己的项目 README 文件一定要认真写
  • git 最好 学习 资料 in:readme stars:>1000 代表必须大于 1000 个 Star 的项目仓库 更多操作可以在 Advanced search 里填写设置之后再搜索
  • ‘after_script:’+’stage:deploy’ filename:.gitlab-ci.yml 搜索.gitlab-ci.yml 文件中包含‘after_script:’和‘stage:deploy’代码的仓库,根据 filename 进行搜索只会根据代码的内容来搜索,只会搜出代码
  • blog easily start in:readme stars:>5000 搜索搭建博客的仓库,且星级超过 5000 个
  • in:name React 搜索项目名里面包含 React 的项目
  • in:name React stars:500..5000 精确到项目的 star 数在500~4000
  • in:name React stars:>5000 forks:>3000 按照 fork 的数量来进行搜索
  • in:readme React 按照 README 来搜索 README.md 里面包含 React 的项目
  • Vue in:readme stars:>3000 forks:>3000 限制一下它的 star 数和 fork 数
  • in:description 微服务 按照 descriptin 搜索微服务项目
  • in:description 微服务 language:JavaScript 增加一些筛选条件,把语言限制为 python
  • in:description 微服务 language:JavaScript pushed:>2023-09-01 pushed:>2023-09-01 的意思是我们把项目的最后更新时间大于 2023-09-01

2. 6git辅助工具(了解即可)

先学会使用命令, 图形化工具一点就通

2.6.1 vscode自带的小黑框-终端

a. vscode自带小黑框(终端)

b.注意,一定要注意路径的问题, 一定要是在git管理的那个文件夹下.

2.6.2 vscode自带了一个不用写命令的工具

img

a. 选中你要add的文件, 点加号,  就相当于git add .

b. 点击勾勾√ , 就相当于 git commit -m””

c. 点击…后,选择推送 , 就相当于是git push

2.6.3 像vscode自带的git这样不用写命令的工具有很多种.

TortoiseGit 小乌龟

sourceTree

GitHubDeskTop 小紫猫/章鱼猫

2.6.4 git自带的gui——gitk。

windows系统需设置编码格式,解决中文乱码。

git config --global gui.encodeing utf-8

gitk打开

gitk
gitk --all

比较两个分支(或版本号)

# git diff 旧版本哈希值 新版本哈希值 

git diff HEAD^ HEAD	# 最近一次提交对比上一次提交的差异

git diff --cached	# 比较暂存区和HEAD的差异
git diff			# 比较工作区和暂存区的差异
git diff -- <file>	# 比较工作区和暂存区的某个文件的差异


# 比较master与bugfix_css,并发现对 index.html 感兴趣。
git diff bugfix_css master -- index.html

# 或者
git branch -av
# 拿到两个分支的最近一次的commit哈希值,再比较
git diff 5bf3fd1 03a5c53 -- index.html

三:git分支 branch

我们现在写代码,都是写在一个默认的主分支(master)里,这样其实是不对的.

master分支的代码一定是能运行的代码,一般这个分支用来发布版本.

img

3.1 使用 步骤

a.新建仓库,就会有一个默认的master分支.

img

b.新建分支 git branch 分支名

img

c.切换到分支写代码,切换分支 git checkout 分支名

img

d.在新分支上编码, 编码后 add commit , 提交到新分支

e.切回到主分支后合并新分支 git merge 分支名

注意:要回到主分支再合并

f.删除新分支 git branch -d 分支名

​ 注意:回到主分支再删除次分支

g.补充: git branch 查看分支

​ git checkout -b 分支名 新建并切换分支

​ git checkout -b 新分支 旧分支。(如 git checkout -b feat/162281 origin/master) 基于旧分支新建并切换分支。

3.2 工作中的分支使用(记忆)

​ 新建仓库就有一个默认的master主分支

a. 主分支(master),一定是不能直接在上面写代码的

​ master 上面的代码一定时没有问题,可以运行起来的,master分支上的代码一般用来做上线,做版本发布

b.写代码一定有一个开发分支(dev)

​ 一定是没有问题的代码才合并到master分支上

c.工作中分支有的是一人一个,也有的是大家公用一个。

四:git pull

img

五:git 工作图解

img

六:制作github个人主页(了解)

img

把这个新建的库克隆到本地

img

这个文件夹里面一定要有一个index.html页面

img

注意:

​ 不要往这个个人主页这个文件夹里面丢java,c#等其他的后端语言的代码.

​ 不要丢之前写的图灵的聊天机器人

七:回顾

7.1 基本命令

git add . 添加到暂存区

git commit -m’描述信息’ 提交到本地仓库

git commit –amend 修改最近一次的提交的message

git status 查看状态

​ 未加到暂存区是红色的.

​ 已经加到暂存区是绿色的.

​ 已经提交了 nothing

git log 查看日志

​ 如果卡住了就按q退出

git log –oneline 查看一行的日志

git log –graph 查看当前分支的图形日志

git log –all –graph 查看所有分支的图形日志

git reflog 查看所有日志(包括回滚的日志)

7.2 远程仓库

git remote 查看远程仓库名字

git remote -v 查看远程仓库地址

git remote remove origin 取消和远程仓库之间的连接.

7.2.1 空仓库

git remote add origin 远程仓库地址 空仓库和已有的本地仓库建立连接 (默认命名为origin,也可 git remote add github 远程仓库地址

git push -u origin master 把本地仓库代码推送到远程

7.2.2 非空仓库

git clone 远程仓库地址 克隆远程仓库,只会克隆master分支.

git push origin –all 如git push github –all

可能遇到push main时会冲突,此时fetch远程仓库,然后merge,之后再push即可解决。

git checkout 分支名 把远程仓库的某个分支拉取到本地

推送非空仓库遇到冲突。

$ git push github --all
To github.com:Landon100100/git-geek.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'github.com:Landon100100/git-geek.git'
git fetch origin 分支
# 或git fetch github main
git checkout main
# git merge github/main # fatal: refusing to merge unrelated histories
git merge --allow-unrelated-histories github/main
# gitk --all
git push github main
# git --all # 可观察到main分支有两个parent

7.3 分支

git branch 查看分支

git branch -v 查看分支名、版本号及提交commit

git branch 分支名 新建分支

git checkout 分支名 切换分支

git checkout -b 分支名 新建并切换分支

git merge 分支名 把分支合并到当前分支

git merge –continue 解决完冲突后,继续完成merge

git branch -d 分支名 删除本地分支

git push -u origin master 远程有master分支,把代码推到远程master

git push –set-upstream origin dev 远程没有dev分支, 把本地dev分支的代码推送到远程dev

git push origin dev 远程有dev分支,把dev分支的代码推送到远程dev分支.

git push 简写,把当前分支推送到远程当前名字分支.

git push origin –delete 分支名 删除远程分支.

git push origin :分支名 删除远程分支(推送一个空的分支来替换远程分支)

7.4 git pull

git pull origin dev 把远程dev和本地不一样的拉取到本地dev. (包含fetch和merge)

7.4.2

git cat-file -t 哈希值 查看内容的类型(如commit、tree、blob、tag等) 举例, 3a/7bbaa95a7aee4c1209a6b029dbf8184b995302,去掉’/’,即git cat-file -t 3a7bbaa95

git cat-file -p 哈希值 查看版本库对象(如文件)的内容

git cat-file -s 哈希值 查看版本库对象的大小(单位:字节,B)

7.5 git rebase

git rebase -i 修改的版本哈希值的前一个
p (pick) 保留: 保留提交不变。
r (reword) 修改: 保留提交,但编辑其提交信息。
e (edit) 编辑: 保留提交,但暂停以进行手动更改。
s (squash) 合并: 将提交与前一个提交合并。
f (fixup) 修正: 类似于 "squash",但丢弃提交的提交信息。
x (exec) 执行: 运行一个 shell 命令。
d (drop) 删除: 删除提交。
b (break) 暂停: 暂停变基以便以后继续。
l (label) 标记: 为当前 HEAD 分配一个标签。
t (reset) 重置: 将 HEAD 重置为标签。
m (merge) 合并: 在变基过程中创建合并提交。

细节:如果从根提交(第一个提交)变基。方式1:手动复制根提交的commit哈希值,再敲git rebase -i 根提交哈希值,在弹出的编辑器手动添加pick 根commit的id 描述。方式2:git rebase -i --root,允许变基根提交。

操作步骤:

  1. 编辑提交列表: 根据需要更改操作命令。
  2. 保存并退出: 保存文件以启动重基。
  3. 解决冲突: 解决任何出现的冲突。
  4. 继续或中止: 使用 git rebase --continue 继续或使用 git rebase --abort 停止。

成功了会提示 Successfully rebased and updated refs/heads/分支名,如Successfully rebased and updated refs/heads/master

如何修改老旧的 commit 的 message?

例子1:

修改某一个commit,选择它的父亲作为变基。

git rebase -i 父tree的哈希值

编辑器(vim)编辑

r 4292430 refering projects

使用:wq保存后。

再用编辑器(vim)编辑

Add a refering project

使用:wq保存。

例子2:

把4个commit,合并成一个。第1个使用默认的pick,可以对第2-4个使用 s。并编辑新提交的commit信息。

完成后,commit哈希值会变化,它后面的commit哈希值也会变化。

合并几个不连续的commit。

需要调整顺序,把需合并的commit,移动到待合并的commit的下一行,并将pick改为s

提示:如果用到第一个提交,而它没有parent,则将第一个的commit添加到第1行。(假设commit哈希值为 f09122c)

pick f09122c
...

把暂存区恢复成和 HEAD 一样?

如果撤销工作区的内容,使用 git checkout -- <file>;如果 撤销暂存区的内容,使用git reset HEAD <file>;。也就是说,如果想变更工作区的内容,找checkout;如果想变暂存区,找 reset。

另外,现在新增加了 git restore命令。使用”git restore ..."撤销工作区的内容;使用"git add ..."撤销暂存区的内容。

git reset HEAD

git diff --cached # 没有返回内容,代表两个内容相同

把暂存区部分文件恢复成和 HEAD 一样?

git reset HEAD -- style/style.css
git reset HEAD -- style/style.css

git status # 查看状态

把暂存区和工作区文件恢复成和 HEAD 一样?

git reset --hard HEAD

把工作区恢复成暂存区一样?

git checkout -- <file>

git checkout -- index.html # 将工作区恢复成和暂存区一样

git diff -- index.html
7.5.2 临时存储
git stash

$ git stash list
stash@{0}: WIP on master: a926ba5 recover readme.md

git stash apply

git stash apply与 git stash pop的区别:两者都是将临时存储的恢复过来,其中apply仍保留原来的那条记录,而pop不保留原来的那条记录。

7.6 撤销更改

7.6.1 没有提交到暂存区

git checkout index.html 撤销更改

7.6.2 已经提交到暂存区了

git reset HEAD index.html 撤销add提交

git checkout index.html 撤销更改

7.6.3 删除暂存区中的文件

git rm –cached 文件名 将文件从暂存区中删除

7.7 版本回滚(穿梭)

git reset –hard 版本号 版本号就是log出来的黄色一串字符,可以是任意的版本号.

git reset –hard HEAD^ 上一个版本 (git reset --hard 缺省是回滚到上一个版本)

git reset –hard HEAD^^ 上 上一个版本

git reset –hard HEAD~3 上三个版本

git reset –hard 版本哈希值 回滚到某一个指定版本,即删除最近的几次commit,或工作区和暂存区恢复到指定的 commit

7.8 配置邮箱和用户名

7.8.1 查看邮箱和用户名

git config user.email

git config user.name

7.8.2 设置

git config –global user.email ‘邮箱名’

git config –global user.name ‘你的用户名’

7.9 暂时保存

git stash 把暂存区中的保存到缓存中.

git stash list 查看缓存(临时存储)的列表

git stash pop 从缓存中取出来,并删除第1个

git stash apply 从缓存中取出来,且不删除第1个

7.10 多人合作的项目

不同人修改了不同文件如何处理?

假设有A、B两位开发者,他们都在这个新的分支下工作,修改不同的文件,A修改 readme.md 文件,B修改 index.html 文件并最后进行提交,同步到 github 上。出现的场景:B先push到远程,A后push到远程。A会出现

 ! [rejected]        feature/add_git_commands -> feature/add_git_commands (fetch first)
error: failed to push some refs to 'github.com:Landon100100/git-geek.git'

A的解决方法1:

git fetch
# git merge 远程分支
git merge github/feature/add_git_commands
# git push 远程名 # 远程名缺省值为origin,它为origin时可省略
git push github

A的解决方法2:

git pull
git push github

不同人修改了同文件的不同区域如何处理?

假设 B和 A同时修改了 index.html 文件的不同区域

先 B修改 index.html 后 push, 这时 A正在本地修改 index.html,A不知道 B已经修改了而且 push 了,这里 A进行 push 就会报错,必须合并才可以 push, 而且合并之后,A可以看见 index.html 内容变了,加了 B添加的内容。

不同人修改了不同文件如何处理?的操作相同。

不同人修改了同文件的相同区域如何处理?

git merge 时,提示出现了冲突。

处理冲突。其中 <<<<<<<代表当前分支修改的,=======代表分隔,>>>>>>>代表导入分支修改的。

处理完后,再git push

在远程分支查看是否成功

多人同时修改了文件名怎么处理

git mv 原文件名 新文件名
git add 文件名
git commit -m'描述信息'
git push

git会对文件名智能感知。

同时变更了文件名和文件内容如何处理?

同”合并冲突”。

团队协作中,git的禁止事项:

禁止向集成分支执行 push -f 操作

禁止向集成分支执行变更历史的操作

如禁止在集成分支中,进行git rebase

7.11 设置公钥

设置公钥

7.12 忽略文件

新建一个 .gitignore 文件, 把需要忽略的文件和文件夹写在这里

# 忽略文件
doc

# 忽略文件夹。后面加/,表示文件夹
doc/

7.13 readme.md

给仓库添加说明

7.14 裸仓库

常用的传输协议

裸仓库是一种没有工作目录的Git仓库,它只包含.git目录,用于存储版本历史和元数据信息。裸仓库通常用于集中管理代码,并作为团队成员之间协作的中心仓库。

git clone --bare <源仓库URL> <目标目录>

例如,如果您想要克隆一个名为myrepo的仓库的裸仓库到本地,您可以执行以下命令:

git clone --bare https://github.com/user/myrepo.git myrepo.git

八:补充几个连接:

廖雪峰讲git

廖雪峰讲js

阮一峰常用 Git 命令清单

阮一峰Flex 布局教程

阮一峰ES6 入门教程

Git 可以这么学

git官方手册

https://www.bilibili.com/video/BV1hf4y1L7LC/

今日单词

  • 单词 解释 说明
    Git   Git版本管理
    svn   svn版本管理
    github 全球的远程仓库 远程仓库
    Bash 进入子程序 Git Bash Here 右键出现该选择框表示成功
    init 初始化 git init 初始化
    commit 提交 git commit
    unset 复位,清除 git config –global –unset user.email
    git config –global –unset user.name
    insertion 增加 Git成功commit的提示:xx files changed, xx insertions(+)
    log   日志
    oneline 一行 git log –oneline 查看一行类型的日志,包括版本号
    reflog   git reflog 查看所有日志(包括回滚的日志)
    HEAD   是一个指向你正在工作中的本地分支的指针
    reset 重置 git reset –hard 版本号 版本穿梭
    mkdir 创建文件夹,创建目录 make directory的缩写
    cd 改变目录 change diretory的单词首字母
    echo 输出字符 echo 字符串输出内容;echo 内容 > 文件名。创建文件
    push 推送 git push origin master;git push
    remote   查看远程仓库名字
    origin 原始 远程仓库默认的名字
    master 主版本 一般用来做上线, 做版本发布
    dev 开发,开发分支  
    checkout   git checkout 分支名。切换分支
    branch 分支 git branch 查看分支 git branch 分支名 新建分支
    merge 合并,融合 git merge 分支名 把分支合并到当前分支
    dev 开发 develop的缩写;dev分支
    rm 移除 remove的简写;git rm –cached 文件名 将文件从暂存区中删除
    stash 存放  
    .gitignore   把需要忽略的文件和文件夹写在这里
    readme 说明  
    respository 仓库 仓库
Written on January 6, 2024