一、自述
在粗略学习完Git教程,特别是对分支管理这一章节的学习,有点力不从心,感觉学习知识优点杂,所有特地在写下这篇文章,弄清楚这其中涉及的知识点。
二、git 常用命令的使用
1、将一个文件夹变为仓库后,第一次使用git status查看仓库状态
git init //将一个文件夹变为仓库
git status
On branch master //一个主分支名为 master
No commits yet //没有提交过
nothing to commit (create/copy files and use "git add" to track)
//没有提交的内容(创建/复制文件并使用“git add”进行跟踪)
2、创建文件readme.md,写入内容Hello world!,第二次使用git status查看仓库状态
git status
On branch master
No commits yet
Untracked files://没有追踪的文件
(use "git add <file>..." to include in what will be committed)
//使用git add <file>去添加它,并提交
readme.md //文件名 此处颜色为红色
nothing added to commit but untracked files present (use "git add" to track)
//没有添加的内容供提交,但是目前没有添加的文件可以使用git add来追踪
此时此刻,Git没有对readme.md文件进行管理的权限,此时,readme.md文件处于工作区,还没有提交到暂存区(没有进行add操作,也就是没有提交到暂存区); git status 可以根据颜色判断文件处于哪个区域,红色:表示当前处于工作区;绿色:表示当前处于暂存区。如果没有文件,表示已经在历史区,历史版本也生成了。如果有文件却没有颜色,可以使用 git config --global color.ui true 设置颜色提示。
3、把工作区的文件提交到暂存区,第三次使用git status来查看仓库状态
git add .
//把工作区的所有文件全部提交到暂存区(包含修改和增加的,但是不包含删除的文件)
git status
On branch master
No commits yet
Changes to be committed: // 已暂存、已提交(暂存区)
(use "git rm --cached <file>..." to unstage)
// 使用“git rm--cached<file>…”来回滚到工作区
new file: readme.md //此处颜色为绿色
git rm --cached file 当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用 git rm --cached git rm --cached 会从暂存区里面删除该文件,下次commit的时候会修改git仓库,但是本地的文件还是保留 。
git add xxx 把指定的文件提交到暂存区
git add . 包含修改和增加的,但是不包含删除的
git add -u 包含修改和删除的,但是不包含新增的
git add -A 同时具备 . 和 -u 的特征
想要把某些文件忽略提交,项目根目录增加 .gitignore文件
4、把缓冲区的文件提交到历史区,第四次使用git status查看仓库状态
git commit -m '提一次提交' //把暂存区的文件 提交到 历史区,形成历史版本号
git status
On branch master
nothing to commit, working tree clean //没有需要提交的内容,工作树为空,表示已经在历史区了
5、 查看历史版本信息
1、git log //查看提交记录 查看历史所有版本信息
2、git log -n 查看最新的前n个版本信息
6、 查看三个区域差别
- 工作区:编辑代码的地方。
- 暂存区:临时存储要生成版本代码的地方。
- 历史区:存储的是生成的每一个版本代码。
git diff //工作区与暂存区的比较
git diff --cached //暂存区与历史区的比较
git diff 提交hash码或者HEAD //工作区与历史区比较
git diff master 工作区VS历史区 (master分支)
git diff 提交区hash码A 提交区hash码B //两个不同提交区比较
git diff 分支A的某个hash码 分支B的某个hash码 //两个不同分支间比较
#若比较两个分支最新提交之间的区别,则直接将hash码换成分支名称即可
7、 回滚版本操作
1.git reset --hard HEAD^,回滚到上个版本
2.git reset --hard HEAD^~2,回滚到前两个版本
3.git reset --hard xxx(版本号或版本号前几位),
//回滚到指定版本号,如果是版本号前几位,git会自动寻找匹配的版本号
4.git reset --hard xxx(版本号或版本号前几位) filename,
//回滚某个文件到指定版本号(需要进入该文件所在目录)
8、VSCode 中git文件标记含义
U untracked
你在工作区新建了这个文件,还未提交到暂存区,就会标记U-
A Added
你的文件已经添加到暂存区,没有提交到历史区,会标记A
-
M modified
你对工作区的文件进行了修改,修改后的文件仍然在工作区,就会文件后标记M,你添加到暂存区后仍标记为M。
9、git和 gitHub同步
git remote
不带参数,列出已经存在的远程分支
git remote -v | --verbose
列出详细信息,在每一个名字后面列出其远程url,此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址。
git remote add origin url
添加一个远程仓库 ,远程仓库名字 叫 origin 默认就叫这个名字。
新建仓库后,就需要把本地的信息推送到远程仓库上,或者从远程仓库拉取最新的信息到本地仓库。
我们本地推送和拉取的信息,既有代码也有版本信息,所以说,推送和拉取,就是保持远程仓库和本地仓库信息的同步。
在推送之前,我们都应该先拉取回来,防止本地覆盖远程。
1、拉取到本地
git pull orgin master
表示从远程仓库的master分支拉取最新的信息到本地。2、推送到远程仓库
git push orgin master
表示 把本地信息推送到远程仓库的master分支下。
git remote remove <name>
删除关联的远程仓库 比如 git remote remove origin
表示移除 origin这个仓库。
git clone url <projectname>
表示把远程仓库clone到本地文件夹 projectname中。
10、git分支操作
1、创建分支
git checkout -b afbos (参数-b表示创建并切换)
2、查看当前的分支
git branch 上面的*号代表目前在哪一个分支上
3、 合并
git merge
4、删除远程分支
git push origin -d afbos
5、删除本地分支
git branch -d afbos
6、新建分支push到服务器------[远程分支与本地分支同名(当然可以随意起名)]
git push origin afbos:afbos
7.切换分支到test
git checkout test
git push origin test:master
// 提交本地test分支作为远程的master分支
//好像只写这一句,远程的github就会自动创建一个test分支
11、Vue-cli3 发布静态页面,并发布到gitHub 中的github pages
//1、修改vue.config.js,修改后,yarn run build 后生成的dist目录中的index.html即可直接预览
module.exports = {
publicPath: './'
}
//2、打开 cmd 进入 dist文件夹内;注意,每次yarn run build都需要重头执行一遍哦。
git init
git add -A
git commit -m 'deploy'
//# 提交到 https://github.com/82318179/VueTabs.git 项目的 gh-pages 分支
git push -f https://github.com/82318179/VueTabs.git master:gh-pages
git push origin master:gh-pages // 提交本地master分支作为远程的gh-pages分支
12、remote
1.git remote 不带参数,列出已经存在的远程分支
2.git remote -v | --verbose 列出详细信息,在每一个名字后面列出其远程url,此时, -v 选项(译注:此为 –verbose 的简写,取首字母),显示对应的克隆地址。
3.git remote add url 添加一个远程仓库
-------------------------
有时候 git remote add 报错
//fatal: remote origin already exists.
怎么解决?
只要两步:
1、先删除
$ git remote rm origin
2、再次执行添加就可以了。
git remote add origin https://gitee.com/xx/MyBrowser.git