1.安装Git
1.1 了解Git
- Git是分布式版本控制系统,没有中央服务器的
- 每个人的电脑就是一个完整的版本库,工作时无需联网
- 可多人协作,只需把各自的修改推送给对方,就可以互相看到对方的修改了
分布式版本控制工具管理方式:
1.2 git 工作流程
一般工作流程如下:
- 从远程仓库中克隆 Git 资源作为本地仓库
- 从本地仓库中checkout代码然后进行代码修改
- 在提交前先将代码提交到暂存区
- 提交修改,提交到本地仓库(保存修改的各个历史版本)
- 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库
2.TortoiseGit 软件安装
2.1 tortoisegit的介绍:
- 完全兼容Git的命令行操作
- 可以用于执行常规任务,如提交、查看日志、差异比较、创建分支和标签、创建补丁等
- 它还支持与远程仓库的交互,如推送(push)和拉取(pull)操作
2.2 下载
官方下载地址:https://download.tortoisegit.org/tgit/
3.安装中文语言包
安装完一般要重启一下电脑
4.使用 git 管理文件版本
4.1 创建版本库(repository)
- 版本库又名仓库,英文名repository
- 可简单理解成一个目录,其中每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
- 由于git是分布式版本管理工具,所以git在不需要联网的情况下也具有完整的版本管理能力
4.2 创建一个版本库
首先,创建一个空目录(D:\Work\git\repository)。在当前目录中点击右键中选择Git Bash来启动
概念:
- 版本库:“.git ” 目录就是版本库
- 将来文件都需要保存到版本库中
- 工作目录:包含“.git”目录的目录
- 也就是 .git 目录的上一级目录就是工作目录
- 只有工作目录中的文件才能保存到版本库中
另外一种创建版本库的方式,使用TortoiseGit:
4.3 设置用户信息4.4 github 上创建share仓库
仓库名:share
echo "# share" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/heheda102410/share.git
git push -u origin main
(1)从远程仓库中克隆 Git 资源作为本地仓库
从URL: https://github.com/heheda102410/share.git 克隆现有的版本库
(2)从本地仓库中checkout代码然后进行代码修改
在本地创建新的分支,叫做branch_01:
- 命令是:git checkout -b branch_01
可以从下图看出创建分支的同时,也切换到了branch_01分支了
注意:使用git checkout命令切换分支的时候,工作区里未受控的文件不变(比如新文件,以及未add的文件更新)
(3)在提交前先将代码提交到暂存区
(4)提交修改,提交到本地仓库(保存修改的各个历史版本)
git add .
git commit -m "创建新分支branch_01初始状态"
git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支
Git跟踪并管理的主要目标是修改变更,而非单个文件本身,比如,某次 commit是多个文件的更新,包括新建文件。
注意:如果文件被修改了,但是没有add,是不会被commit到存储库中的
当然这个步骤可以用tortoiseGit 来完成同样的效果:
首先,先回退一下版本,Git允许我们在版本的历史之间穿梭,使用
- 命令git reset --hard commit_id
我们想知道commit_id ,可以从tortoiseGit查看,也可以在git bash中用命令查看:
SHA-1: 6f0033c564c9e788416d39a64469372f37e36320
SHA-1: b7e41e1596094a36c85324cb7941afe221dd0fd8
- 要重返未来,用git reflog【另外一条类似命令为:git log --pretty=oneline】查看命令历史,以便确定要回到未来的哪个版本
$ git log --pretty=oneline
命令git reset --hard commit_id
$ git reset --hard b7e41e1596094a36c85324cb7941afe221dd0fd8
之前:
回退commit后:
现在,我们已经体验了一把回退版本的美妙,我们继续来探索其他的命令是什么功能吧!
首先,先回到我们新建了一个文本heheda_test.txt的版本
执行完以上命令后,已经出现了有heheda_test.txt这个版本了。接着在当前目录中,新增两张图片,然后在空白处右键点击tortoiseGit的“Git commit(提交)...”
- HEAD指向的版本就是当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
上一个版本就是HEAD^
$ git reset --hard HEAD^
上上一个版本就是HEAD^^
$ git reset --hard HEAD^^
上上一个版本就是HEAD^^
$ git reset --hard HEAD~2
- 使用
git log --graph --pretty=oneline --abbrev-commit
可以以图形的方式查看分支提交记录。比如:
git log --graph --pretty=oneline --abbrev-commit
多条commit合并成一条
$ git push --set-upstream origin branch_01
再创建一个分支,branch_02
推荐和参考文章:
切换为“合并分支”版本,那就会撤回1个视频
$ git push --force
$ git push --force-with-lease
使用 `-force` 被认为是有害的;了解 Git 的 `-force-with-lease` 命令_--force-with-lease-CSDN博客https://blog.csdn.net/LeviDing/article/details/76789443
对比branch_01仓库和main仓库,我们可以发现各自的存储内容都不太一样!
Git基础入门二:工作区和暂存区-CSDN博客
Git基础入门三:创建版本库和添加修改文件基本命令_使用git只添加修改文件的命令的是-CSDN博客
Git基础入门四:版本回退(撤销修改)_git clean -xdf 怎么撤回-CSDN博客
Git基础入门五:分支管理_branch 'dev' set up to track remote branch 'dev' f-CSDN博客
Git基础入门六:标签管理(git tag)_git label-CSDN博客
Git基础入门七:Git高级命令之Rebase_rebase是什么意思-CSDN博客
Git的安装和本地仓库基本操作使用详解(一)_tortoisegitplink,basedonputty;optimizedfortortoise-CSDN博客
如何使用TortoiseGit指北,一篇讲清 - 知乎 (zhihu.com)