什么是Git?

git/ɡɪt/[3]音频)是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL许可协议发布。最初目的是为了更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools[4](一个类似Norton Commander界面的文件管理器)不同。

git最初的开发动力来自于BitKeeperMonotone[5][6]。git最初只是作为一个可以被其他前端(比如Cogito或Stgit[7])包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制[8]。很多被广泛使用的软件项目都使用 git 进行版本控制[9],其中包括 Linux 内核、X.Org服务器OLPC内核等项目的开发流程[10]

——引用自Wiki

简单来说,就是能记录和管理你代码的工具,可以帮你记录每次版本的具体改动,由谁改动,方便统计代码的变化。

分布式相对于集中式的最大区别就是开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

Git有什么作用

  1. 追踪文件修改历史,支持版本回退
  2. 分支管理,允许多任务并行开发
  3. 团队协作,智能处理合并冲突
  4. 支持离线工作
  5. 代码备份与恢复
  6. 便于开源贡献
  7. 记录详细修改历史

开始使用Git

内容面向Windows系统

git基本操作

安装初始化

在官网下载完成Git并且安装后,可以在任意一处右键打开 git bush 后,输入命令

git config --global user.name "Your Name"         // 配置自己的用户名
git config --global user.email "email@example.com"// 配置自己的邮箱
git config --global --list                        // 查看配置的账户

来设置本台机器上Git使用者的账户。

创建Git仓库

打开一个空文件夹或者项目工程文件夹,右键打开 git bush 后输入

git init

来创建一个版本库(仓库,Repository)。可以将版本库理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

随后使用git add将当前仓库内全部文件放入缓存区,再使用git commit -m "你的提交修改信息"来提交一次版本。

git add
git commit -m "一次改动"

链接远程库

首先需要注册一个代码托管网站的账号,比如Github
github默认主分支名是”main“,而git的默认主分支名是”master“,可以先将github中设置改为”master“,保证本地库更新推送时的一致性
在github右上角的”+“号处点击”New repository“来创建一个github托管的远程仓库
填写好仓库名、开源协议、readme文件后点击创建就完成了远程仓库的创建

要将本地仓库链接到远程仓库,最好设定好SSH密钥,增加安全性
在git bush使用ssh-keygen -t rsa命令,按三次回车,查看目录(windows:在 C:\Users\你的用户名.ssh)中是否已经生成SSH文件
随后在github的setting-SSH and GPG keys内点击New SSH key,将刚刚生成的id_ras.pub文件中的内容复制进去并且保存即可

完成SSH的配置后,链接远程仓库即可使用SSH地址,比HTTP地址更加安全

接下来回到刚刚创建的远程仓库的主页,点击绿色Code按钮后,复制其中的SSH仓库地址
随后在本地仓库中打开git bush,输入

git remote add origin 远程仓库的SSH地址

来将本地仓库链接到远程仓库

随后就可以使用git push origin "master"或者git pull命令来推送或者拉取远程仓库的内容了

Git常用命令

命令说明
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git difftool使用外部差异工具查看和比较文件的更改。
git range-diff比较两个提交范围之间的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm将文件从暂存区和工作区中删除。
git mv移动或重命名工作区文件。
git notes添加注释。
git checkout分支切换。
git switch (Git 2.23 版本引入)更清晰地切换分支。
git restore (Git 2.23 版本引入)恢复或撤销文件的更改。
git show显示 Git 对象的详细信息。
git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并

Git相关软件

可以使用git gui、tortoise git来图形化控制git仓库,简化操作

Github开源相关

Q&A

如何退出git log或是git reflog?

长按Q即可

参考文章:怎么退出git bash编辑界面,怎么退出git log

如果操作了git reset --hard怎么恢复?

可以使用git reflog来查看所有HEAD的历史,比如checkout或者reset
找到上一次commit操作的版本名,使用git reset --hard 版本名来恢复到被上次reset覆盖的版本

参考文章:恢复 git reset -hard 的误操作

等我用出什么问题再更新


本篇文章参考文献:

git的作用和简单使用——CSDN
Git的作用以及使用方法——CSDN
一张图看懂开源许可协议的区别——CSDN
Git 基本操作——菜鸟教程
git——中文维基百科