目前最流行的是分布式版本控制系统
有点 =>
git是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理
特点:项目越大越复杂,协同开发者越多,越能体现出 git 的高性能和高可以用性
解释:
svn是基于差异的版本控制,就是记录变化后的文件。他们存储的是一组基本文件和每个文件随时间逐步累积的差异
git快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,git不再重新存储该文件,而只保留一个链接指向之前存储的文件
git管理的项目,由三个区域,分别是:工作区、暂存区、git仓库
https://git-scm.com/download/win
第一件事情,设置自己地用户名和邮箱
git config --global user.name ""
git config --global user.email ""
// 第一个是 用户名;第二个是邮箱
如果使用了 --global 选项,那么该命令只需要执行一次,即可永久生效
通过 git config --global user.name “” 和 git config --global user.email “” 配置的用户名和邮箱地址,会被写入到 C:\Users\dell.gitconfig 文件中
# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email
# 要打开 git config 命令的帮助手册
git help config
# 在终端里面打开
git config -h
Ctrl+ins 复制 (ins 键盘右上角的Insert)
Shift+ins 粘贴 (shift 键盘上最左下角CTRL键的上面一个上档转换键,也可用于中英文转换)
如果自己有一个尚未进行版本控制的项目目录,想要用 git来控制它,需要执行如下两个步骤:
git init 命令会创建一个名为 .git 的隐藏目录,这个 隐藏目录就是当前项目的git仓库,里面包含了初始的必要文件,这些文件是git仓库的必要组成部分
四种状态分为两大类
未被GIT管理:未跟踪
已被git管理:未修改、已修改、已暂存
git status -s
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BwvCq43h-1620388516841)(git笔记.assets/image-20200910134711196.png)]
GIT操作的最终结果:让工作区中的文件都处于 “未修改” 的状态
# git status 查看文件处于什么状态
$ git status
On branch master
Initial commit
Untracked files:
(use "git add ..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)
# 注意 untracked files 表示 未被跟踪的文件
# 已精简的方式显示文件状态
git status -s
git status --short
未跟踪的文件前面有 红色的 双问号标记
# ?? 表示 未被跟踪的文件
$ git status --short
?? index.html
$ git status -s
?? index.html
# git add index.html 表示开始跟踪一个文件
# 表示已经跟踪了 index.html文件
$ git add index.html
# 运行 git status -s , A 表示新添加到暂存区的文件,A是绿色的
$ git status -s
A index.html
# Changes to be committed 这行的下面,说明已经被跟踪,并且处于暂存状态
$ git status
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached ..." to unstage)
new file: index.html
现在暂存区有一个index.html 文件等待被提交到 git仓库中进行保存。可以执行git commit 命令进行提交,其中 -m 选项 后面是本次提交的消息,用来对提交的内容做进一步的描述
例如:
git commit -m "新建了index.html文件"
# 向仓库提交一个 index.html 出现下面代码则表示成功
$ git commit -m "提交了一个index.html"
[master (root-commit) e8a908f] 提交了一个index.html
1 file changed, 14 insertions(+)
create mode 100644 index.html
# 出现下面代表则表示:工作区文件都处于“未修改状态”,没有任何文件需要被提交
$ git status
On branch master
nothing to commit, working tree clean
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZYfQSpJ-1620388516844)(git笔记.assets/image-20200910154258909.png)]
目前,index.html 文件已经被git 跟踪,并且工作区和git仓库中的index.html 文件内容保持一致 。当我们修改了工作区的index.html 内容之后,再次运行 git status 和 git status -s 命令,内容如下:
# 表示已经提交并且被修改的文件
$ git status
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
$ git status -s
M index.html
目前,工作区的index.html 文件已经被修改,如果要暂存这次修改,需要再次运行 git add 命令,这个命令是个多功能的命令,主要有如下三个功效
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IzqOsTVc-1620388516846)(git笔记.assets/image-20200910160216483.png)]
再次运行 git commit -m “被修改的文件,已经被提交” 命令,即可将暂存区中记录的index.html 快照,提交到 git仓库中进行保存
$ git commit -m "初始化了index.html,再次提交"
[master 954c645] 初始化了index.html,再次提交
1 file changed, 1 insertion(+), 1 deletion(-)
$ git status
On branch master
nothing to commit, working tree clean
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fiIZUvGa-1620388516848)(git笔记.assets/image-20200910162105416.png)]
撤销对文件的修改指的是:把对工作区中对应文件的修改,还原成git仓库中所保存的版本。
操作的结果:所有的修改会丢失,且无法恢复!!!
危险性较高!!!请谨慎操作!!!
git checkout – 加上撤销文件的名字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ENLJwRIm-1620388516850)(git笔记.assets/image-20200910162359099.png)]
如果需要被暂存的文件个数比较多,可以使用如下的命令,一次性将所有的 新增 和 修改 过的文件 加入暂存区
git add .
如果需要从暂存区移动对应的文件,可以使用如下命名
git reset HEAD 要移除的文件名称
GIT标准的工作流程是工作区=>暂存区=>Git仓库,但有时候这么做略显繁琐,此时可以跳过暂存区,直接将工作区中的修改提交到Git仓库,这时候git工作流程简化为了 工作区 => git仓库
Git 提供了一个跳过使用暂存区的方式,只要在提交的时候,给 git commit 加上 -a 选项,git就会自动把所有已经跟踪过的文件暂存起来一起提交,从而跳过 git add 步骤
git commit -a -m “描述信息”
$ git status -s
M index.css
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$ git commit -a -m "跳过暂存区,进行提交"
[master 2f99439] 跳过暂存区,进行提交
1 file changed, 6 insertions(+)
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$ git status -s
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$ git status
On branch master
nothing to commit, working tree clean
从git仓库中移除文件的方式有两种:
# 从 git仓库中和工作区中同时移除 index.js文件
git rm -f index.js
# 只从git仓库中移除 index.css 但保留工作区中的 index.css文件
git rm --cached index.css
# 从git仓库和工作区同时删除 对应的文件
$ git rm -f index.js
rm 'index.js'
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
# 绿色的D ,表示下次提交要删除的文件
$ git status -s
D index.js
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
# 表示只在git仓库删除的文件
$ git rm --cached index.css
rm 'index.css'
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
deleted: index.css
deleted: index.js
Untracked files:
(use "git add ..." to include in what will be committed)
index.css
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
# ?? 表示没有被跟踪的文件,就是工作区的文件和git的文件内容不一样
$ git status -s
D index.css
D index.js
?? index.css
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
# 删除上面想要删除的文件,跳过暂存区操作
$ git commit -a -m "删除index.js 在仓库中删除index.css"
[master 7585d37] 删除index.js 在仓库中删除index.css
2 files changed, 6 deletions(-)
delete mode 100644 index.css
delete mode 100644 index.js
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$ git status -s
?? index.css
dell@DESKTOP-SM71TU9 MINGW64 /f/黑马年度班2020.8.30/四阶段前后端交互/第二章git和github/project_01 (master)
$
一般我们总会有些文件无需纳入 git 的管理,也不希望他们总出现在未跟踪文件列表。在这情况下,我们可以创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式
文件 .gitignore 的格式规范如下
所谓的 glob 模式 是指简化了的正则表达式
# 忽略 index.css 这个文件
index.css
# 忽略 任何目录下 test 目录下所有的文件和文件夹
test/
# 忽略所有的 .a文件
*.a
# 但跟踪所有的 lib.a. 即便你前面忽略了 .a文件
!lib.a
# 只忽略当前目录下的 TODO文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的 中的所有文件和文件夹
build/
# 忽略 doc/notes.txt 但是不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录及其所有子目录下的 .pdf文件
doc/**/*.pdf
按Q结束
# 按时间先后顺序列出所有的提交历史,最近的提交排在最上面
git log
# 只展示最新的两条提交历史,数字可以按需进行填写
git log -2
# 在一行上显示最近两条提交历史的信息
git log -2 --pretty=online
# 在一行上展示最近两条提交历史的信息,并自定义输出格式
# %h表示提交的间写哈希值,%an表示作者名字,%ar表示作者修订日期,按多久以前的方式显示, %s提交说明
git log -2 --pretty=format:"%h | %an | %ar | %s"
# 只展示最新的两条提交历史,数字可以按需进行填写
$ git log -2
commit 7585d3730a9ee2c4648efd472004a92c72e61d2f
Author: 呆呆狗 <7524246+yygddg@user.noreply.gitee.com>
Date: Thu Sep 10 18:14:24 2020 +0800
删除index.js 在仓库中删除index.css
commit 2f99439af28c224f4164ea9928b86a2bc384fe65
Author: 呆呆狗 <7524246+yygddg@user.noreply.gitee.com>
Date: Thu Sep 10 17:56:53 2020 +0800
跳过暂存区,进行提交
# 在一行上显示最近两条提交历史的信息
$ git log -2 --pretty=oneline
7585d3730a9ee2c4648efd472004a92c72e61d2f 删除index.js 在仓库中删除index.css
2f99439af28c224f4164ea9928b86a2bc384fe65 跳过暂存区,进行提交
# 在一行上展示最近两条提交历史的信息,并自定义输出格式
# %h表示提交的间写哈希值,%an表示作者名字,%ar表示作者修订日期,按多久以前的方式显示, %s提交说明
$ git log -2 --pretty=format:"%h | %an | %ar | %s"
7585d37 | 呆呆狗 | 87 minutes ago | 删除index.js 在仓库中删除index.css
2f99439 | 呆呆狗 | 2 hours ago | 跳过暂存区,进行提交
# 在一行上展示所有的提交历史
git log --pretty=oneline
# 使用 git reset --hard 命令,根据指定的id 回退到指定版本
git reset --hard id
# 在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog --pretty=oneline
# 再次根据最新的提交 id 跳转到最新的版本
git reset -hard id
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zlP8FDaA-1620388516853)(git笔记.assets/image-20200910200245802.png)]
常见的五种
GPL的特点
MIT特点:
开源的核心思想是:我为人人,人人为我
专门用于免费存放开源项目源代码的网站,叫做开源项目托管平台。
注意:以上三个开源项目托管平台,只能托管以 Git 管理的项目源代码,因此,他们的名字都以 Git 开头
GitHub是全球最大的 开源项目托管平台 。因为只支持 git 作为唯一的版本控制工具
HTTPS 和 SSH
官网上的案例
本地没有现成的git仓库时
# 使用终端命令创建 README.md文档,并写入初始内容为 # test_01
echo "# test_01" >> README.md
# 一下三行代码,时初始化本地git仓库,并将文件的修改提交到本地的git仓库中
git init
git add README.md
git commit -m "first commit"
git branch -M master # 老师未讲解,此行代码
# 将本地仓库呵远程仓库关联,并把远程仓库命名为 origin
git remote add origin https://github.com/daidaigou-ye/test_01.git
# 将本地仓库中的内容推送到远程的GitHub仓库中
git push -u origin master
本地有现成的git仓库
git remote add origin https://github.com/daidaigou-ye/test_01.git
git branch -M master # 老师未讲解,此行代码
git push -u origin master
Compressing objects: 100% (14/14), done. 表示已经上传到了远程仓库中
新建了一个 index.js文件需要提交到远程仓库中
git push -u origin master 表示第一次将文件发送到GitHub远程仓库中需要执行的代码
第二次,第三次等等 需要执行 git push
$ git status -s
?? index.js
$ git add .
$ git status -s
A index.js
$ git commit -m "第一次提交的js文件"
[master 59fb001] 绗竴娆℃彁浜ょ殑js鏂囦欢
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.js
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 353 bytes | 353.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/daidaigou-ye/test_01.git
870ce50..59fb001 master -> master
作用:实现本地仓库和GitHub之间免登录的加密数据传输
好处:免登录身份认证、数据加密传输
SSH key由两部分组成,分别是
- id_rsa (私钥文件,存放于客户端的电脑即可)
- id_rsa,pub (公钥文件,需要配置到 GitHub 中)
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/dell/.ssh/id_rsa):
Created directory '/c/Users/dell/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/dell/.ssh/id_rsa
Your public key has been saved in /c/Users/dell/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:iixpNFgM4DRFkcEpS4voJTIuZBPuRdpH1MUBgtdHvMI [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|+o+=Boo.*+. |
|o*.* o.o + |
|=.@ o . . . |
|=% + . E . |
|O.B . S |
|.= + . . |
|. + o . |
| . . |
| |
+----[SHA256]-----+
$ ssh -T git@github.com
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
# 在后面紧跟着输入 yes
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
Hi daidaigou-ye! You've successfully authenticated, but GitHub does not provide shell access.
# 配置成功
先把访问方式切换到 SSH
# 先关联
git remote add origin git@github.com:daidaigou-ye/test_02.git
git push -u origin master
$ git clone https://github.com/daidaigou-ye/test_02.git
Cloning into 'test_02'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 247 bytes | 1024 bytes/s, done.
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习 Git 的时候,另一个你正在平行宇宙里努力学习 SVN
如果两个平行宇宙互不干扰,那对现在的你也没啥影响
不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了 Git 也学会了 SVN
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gd2JV9bV-1620388516854)(git笔记.assets/image-20200911120548298.png)]
进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZE0wNl8C-1620388516855)(git笔记.assets/image-20200911120932086.png)]
在初始化本地 Git 仓库的时候, Git 默认已经帮我们创建了一个名字叫做master的分支,通常我们把这个master 分支,叫做主分支
在实际工作中,master主分支的主要作用就是:用来保存和记录整个项目已经完成的功能代码
不允许程序员直接在master分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃
由于程序员不能直接在 master 分支上进行功能的开发,所以就有了功能分支的概念
功能分支指的是专门用来开发新功能的分支,它是临时从master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到 master 主分支上,如图所示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ldfEzYHP-1620388516856)(git笔记.assets/image-20200911123335508.png)]
使用如下的命令,可以查看当前 Git 仓库中所有的分支列表
注意:分支名字前面的 * 号表示当前所处的分支
git branch
$ git branch
* master
使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样
git branch 新分支名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwEKN6aY-1620388516857)(git笔记.assets/image-20200911124258328.png)]
执行完创建分支后,用户当前所处的还是 master 主分支
可以使用如下的命令,可以切换到指定的分支上进行开发
git checkout 分支名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zRU4hZ2l-1620388516858)(git笔记.assets/image-20200911173306113.png)]
$ git branch
login
* master
$ git checkout login
Switched to branch 'login'
$ git branch
* login
master
注意:分支的创建,有个不成文的约定,要在master 主分支的基础之上进行创建
使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上
# -b 表示创建一个新分支
# checkout 表示切换到刚才新建的分支上
git checkout -b 分支名称
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NY1pmXMW-1620388516859)(git笔记.assets/image-20200911184455306.png)]
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
$ git branch
login
* master
$ git checkout -b reg
Switched to a new branch 'reg'
$ git branch
login
master
* reg
功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master 主分支上
注意:假设要把C分支的代码合并到A分支,则必须线切换到A分支上,再运行 git merge 命令 来合并C分支
# 切换到 master 分支
git checkout master
# 在master 分支上运行 git merge 命令 ,将login 分支的代码合并到master 分支
git merge login
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRnB4tHD-1620388516860)(git笔记.assets/image-20200911185934952.png)]
例子,要求:将login合并到master上
首先 再login分支上,写了代码,并且提交到了本地仓库
$ git status
On branch login
nothing to commit, working tree clean
切换到 想要合并到的那个分支
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
执行 合并分支代码
$ git merge login
Updating d2b77d9..102dc4b
Fast-forward
index.css | 6 ++++++
index.html | 15 +++++++++++++++
2 files changed, 21 insertions(+)
其实在在主分支我们没有写东西,是在login分支上写的东西,你切换到主分支的时候,其实文件大小会发生变化,
当把功能分支的代码合并到master 主分支上以后,就可以使用如下的命令,删除对应的功能分支
git branch -d 分支名称
$ git branch -d login
Deleted branch login (was 102dc4b).
在删除这个分支的时候,先跳转到另一个分支上,然后再删除
如果有个分支,还没有被合并到主分支的时候,你用 git branch -d 分支名称,会提示你
the branch ‘分支名’ is not fully merged
if you are sure you wang to delete . run ’ git branch -D reg’ (这里的reg是分支名)
如果再两个不同的分支中,对同一个文件进行了不同的修改,Git 就没法干净的合并他们,此时,我们需要打开这些包含冲突的文件,然后手动解决冲突
# 假设:再把 reg 分支合并到 master 分支期间,代码发生了冲突
git checkout master
git merge reg
# 打开包含冲突的文件,手动解决冲突之后,再执行如下的命令
git add .
git commit -m "解决了分支合并冲突的问题"
要求:把reg 分支 合并到 master分支上(index.html在reg分支和master分支上都修改过)
# 先切换到 master分支上
$ git merge reg
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
# 当出现这个代码的时候,表示 这个index.html文件 在两个不同的分支上对同一文件进行了修改
# 下面的图片是执行上面合并代码后,出现的问题
# 解决方案
# 第一步 1:根据四个选项选择一个选项,然后保存(本次案例,选择采用当前更改)
# 第二步 2: git add .
# 第三步 3:git commit -m ""
$ git status -s
UU index.html
$ git add .
$ git commit -m "解决了冲突,然后提交到本地仓库"
合并代码后(在两个不同的分支上对同一文件进行了修改)在vscode所显示的样子为下图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFPAyfzi-1620388516861)(git笔记.assets/image-20200911220016547.png)]
如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:
默认情况下远程仓库的名字就是叫做:origin
注意! 只有第一次推送分支需要带 -u 参数,此后可以直接使用 git push 推送代码到远程分支
# -u 表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称
# 实际案例: 本地有一个payment分支,需要推送到远程的 origin仓库中,同时把这个分支重命名为pay
git push -u origin payment:pay
# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment
案例:把reg推送到GitHub远程仓库上
# 先检查一下分支
$ git branch
* master
reg
# 把本地的reg分支推送到远程仓库上,并把这个分支重命名为register
$ git push -u origin reg:register
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-igun6R1L-1620388516862)(git笔记.assets/image-20200911222624333.png)]
git remote show 远程仓库的名字
$ git remote show origin
* remote origin
Fetch URL: https://github.com/daidaigou-ye/test_02.git
Push URL: https://github.com/daidaigou-ye/test_02.git
HEAD branch: master
Remote branches:
master tracked
register tracked
Local branches configured for 'git pull':
master merges with remote master
reg merges with remote register
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要执行以下代码
# 从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkout 远程分支的名称
# 示例
git checkout pay
# 从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称
# 示例
git checkout -b payment origin/pay
$ git branch
* master
reg
# 删除reg分支
$ git branch -d reg
Deleted branch reg (was cdbc9dc).
# 从远程仓库 克隆下来 远程仓库的某个分支
$ git checkout register
Switched to a new branch 'register'
Branch 'register' set up to track remote branch 'register' from 'origin'.
$ git branch
master
* register
从远程仓库,拉去当前分支最新的代码,保持当前分支的代码和远程分支一致
在那个分支上运行这个代码,就表示更新那个分支上对应的代码
git pull
案例: 前提,在register分支上,修改了index.js代码
$ git pull
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 9 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), 2.04 KiB | 5.00 KiB/s, done.
From https://github.com/daidaigou-ye/test_02
cdbc9dc..cd60fa4 register -> origin/register
Updating cdbc9dc..cd60fa4
Fast-forward
index.js | 2 ++
1 file changed, 2 insertions(+)
# 删除远程仓库中,指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名字
# 示例
git push origin --delete pay
案例:删除远程resister分支
$ git push origin --delete register
To https://github.com/daidaigou-ye/test_02.git
- [deleted] register
码云创建新的仓库。 heimamm
利用git 提交 把本地网站提交到 码云新建的仓库里面
在网站根目录右键-- Git Bash Here
如果是第一次利用git提交,请配置好全局选项
git config --global user.name "用户名"
git config --global user.email "你的邮箱地址"
初始化仓库
git init
把本地文件放到暂存区
git add .
把本地文件放到本地仓库里面
git commit -m '提交黑马面面网站'
链接远程仓库
git remote add origin 你新建的仓库地址
把本地仓库的文件推送到远程仓库 push
git push -u origin master
码云部署发布静态网站
在当前仓库中,点击 “服务” 菜单
选择 Gitee Pages
选择 “启动” 按钮
稍等之后,会拿到地址,就可以利用这个地址来预览网页了