Git介绍
Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git 的特点:
-
分支更快、更容易。
-
支持离线工作;本地提交可以稍后提交到服务器上。
-
Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
-
Git 中的每个工作树都包含一个具有完整项目历史的仓库。
-
没有哪一个 Git 仓库会天生比其他仓库更重要。
01Git安装与配置
1)Windows上安装Git
下载地址:https://git-scm.com/download/win
最新版本为:Git-2.27.0-64-bit.exe
安装步骤:
1.双击 Git-2.27.0-64-bit.exe 开始安装;
2.一直点击next,直到出现install,点击install,安装完成后点
击finish;
3.检查git是否安装OK
cmd -> git --version
C:\Users\Foreknew>git --version
git version 2.27.0.windows.1
2)Git配置
由于git是分布式管理工具,需要输入用户名和邮箱以作为标识,因此,在命令行输入下列的命令
注意:git config --global参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱,根据个人情况设置。
02Git基本用法
1、Git工作流程
2、Git命令
2.1)分支操作
1. git branch 创建分支
2. git checkout -b 创建并切换到新建的分支上
3. git checkout 切换分支
4. git branch 查看分支列表
5. git branch -v 查看所有分支的最后一次操作
6. git branch -vv 查看当前分支
7. git brabch -b 分支名 origin/分支名 创建远程分支到本地
8. git branch --merged 查看别的分支和当前分支合并过的分支
9. git branch --no-merged 查看未与当前分支合并的分支
10. git branch -d 分支名 删除本地分支
11. git branch -D 分支名 强行删除分支
12. git branch origin :分支名 删除远处仓库分支
13. git merge 分支名 合并分支到当前分支上
2.2)暂存操作
1. git stash 暂存当前修改
2. git stash apply 恢复最近的一次暂存
3. git stash pop 恢复暂存并删除暂存记录
4. git stash list 查看暂存列表
5. git stash drop 暂存名(例:stash@{0}) 移除某次暂存
6. git stash clear 清除暂存
2.3)回退操作
1. git reset --hard HEAD^ 回退到上一个版本
2. git reset --hard ahdhs1(commit_id) 回退到某个版本
3. git checkout -- file撤销修改的文件(如果文件加入到了暂存区,
则回退到暂存区的,如果文件加入到了版本库,则还原至加入
版本库之后的状态)
4. git reset HEAD file 撤回暂存区的文件修改到工作区
2.4)标签操作
1. git tag 标签名 添加标签(默认对当前版本)
2. git tag 标签名 commit_id 对某一提交记录打标签
3. git tag -a 标签名 -m '描述' 创建新标签并增加备注
4. git tag 列出所有标签列表
5. git show 标签名 查看标签信息
6. git tag -d 标签名 删除本地标签
7. git push origin 标签名 推送标签到远程仓库
8. git push origin --tags 推送所有标签到远程仓库
9. git push origin :refs/tags/标签名 从远程仓库中删除标签
2.5)其他常规操作
1. git push origin test 推送本地分支到远程仓库
2. git rm -r --cached 文件/文件夹名字 取消文件被版本控制
3. git reflog 获取执行过的命令
4. git log --graph 查看分支合并图
5. git merge --no-ff -m '合并描述' 分支名 不使用Fast forward方
式合并,采用这种方式合并可以看到合并记录
6. git check-ignore -v 文件名 查看忽略规则
7. git add -f 文件名 强制将文件提交
2.6)git创建项目仓库
1、git init 初始化
2、git remote add origin url 关联远程仓库
3、git pull
4、git fetch 获取远程仓库中所有的分支到本地
2.7)忽略已加入到版本库中的文件
1、git update-index --assume-unchanged file 忽略单个文件
2、git rm -r --cached 文件/文件夹名字 (. 忽略全部文件)
2.8)取消忽略文件
git update-index --no-assume-unchanged file
2.9)拉取、上传免密码
git config --global credential.helper store
03Git基本操作
1、创建版本库
版本库就是我们所说的“仓库”,英文名repository,你可以理解为一个目录,这个目录里面的所有文件都可以被Git管理,文件的修改,删除Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
下面在D:下创建了一个git 的版本库:
2、添加文件到版本库
要添加文件到版本库,首先需要将这个目录变为git可以管理的仓库,命令如下:
在git目录下创建一个test.txt文件:
git add:将文件提交到暂存区
git commit -m:将暂存区文件提交到仓库(单引号内为注释)
3、检查是否有未提交的文件
通过下面的命令,检查该版本库是否有文件未提交:
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git status
On branch master
nothing to commit, working tree clean
Foreknew@ForeknewPC MINGW64 /d/git (master)
4、检查文件是否被修改
修改test.txt,然后重新检查状态:
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git status
On branch master
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: test.txt
no changes added to commit (use "git add" and/or
"git commit -a")
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git diff test.txt
diff --git a/test.txt b/test.txt
index 59eb105..5d4ae7d 100644
--- a/test.txt
+++ b/test.txt
@@ -1,3 +1,5 @@
1111111111111111
2222222222222222
-3333333333333333
\ No newline at end of file
+3333333333333333
+4444444444444444
+5555555555555555
\ No newline at end of file
Foreknew@ForeknewPC MINGW64 /d/git (master)
git diff:查看文件修改的内容
5、查看历史变更记录
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git add test.txt
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git commit -m 'fixed 2'
[master 41ad1bb] fixed 2
1 file changed, 3 insertions(+), 1 deletion(-)
Foreknew@ForeknewPC MINGW64 /d/git (master)
$ git log
commit 41ad1bba8cdc8b528f3e3182e7d84e1146220f05
(HEAD -> master)
Author: admin <admin@163.com>
Date: Sat Jun 27 14:25:31 2020 +0800
fixed 2
commit dcfca195de64c268af6aa6c281f4e32dfa537ee6
Author: admin <admin@163.com>
Date: Sat Jun 27 14:16:03 2020 +0800
test.txt file commit 2020-06-27
Foreknew@ForeknewPC MINGW64 /d/git (master)
$
git log:获得历史修改记录
git log --pretty=oneline:使记录只显示主要的内容,一行显示
6、回退版本
git reset --hard HEAD^:回退到上一个版本
git reflog:获取历史版本号
git reset --hard 版本号:回退到该版本号对应的版本
PS:如果要回退到上上个版本,可以使用git reset --hard HEAD^^命令,但是这样稍显麻烦,
如果回退到100个版本之前,只需要执行这个命令即可:git reset --hard HEAD~100;
7、将本地文件推送到github仓库
检查文件是否还有未提交或者修改的,然后将文件提交到github仓库,命令如下: