Git是一款非常实用的版本控制工具,能够帮助我们有效进行版本控制和备份。此外,还有Github平台帮助我们进行远程版本控制和协作。
本文旨在帮助读者快速上手Git的入门级操作,免去繁琐的概念介绍,只求最快速的下载、安装和使用。
一、安装Git
Linux
Debian或Ubuntu可以采用apt-get安装:
sudo apt-get install git
如果是Debian或Ubuntu的旧系统:
sudo apt-get install git-core
其他版本可以采用源码安装:
# 先从官网下载源码并解压
./config
make
sudo make install
macOS
使用homebrew安装,如果没有brew则先安装Xcode Command Line Tools:
xcode-select --install
安装homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
执行以下命令,Git将被安装在/usr/local/Cellar/git/2.21.0
路径下:
brew install git
Windows
为了方便,可以直接下载打包好的msysgit:
https://gitforwindows.org
使用默认选择安装,在开始菜单找到Git --> Git Bash
,打开即可。
二、配置Git账号
检查Git是否安装成功,如果输出了Git的版本号就表示安装成功:
git --version
配置用户名和邮箱:
git config --global user.name <用户名>
git config --global user.email <邮箱>
三、使用Git
初始化
首先cd
到一个目标路径,该路径将被新建为一个Git仓库:
cd <目标路径>
初始化git,使得当前路径成为一个Git仓库:
git init
这样一来该路径下的所有文件都会接受Git仓库的管理,你也可以新建一些文件来接受管理。
添加和提交
使用add
命令将文件添加到版本库的暂存区,暂存区里可以存放多个文件:
git add <文件路径>
然后将暂存区中的所有文件提交到版本库,可以通过-m
参数传入附加消息:
git commit -m <消息字符串>
每次进行新建、修改、提交等各种操作之后,都可以用status
命令查看当前仓库的状态:
git status
使用diff
命令可以发现被修改文件和仓库文件的区别:
git diff <文件路径>
版本回退
提交多次之后,可以通过log
命令查看提交记录,通过设置--pretty=oneline
参数,可以精简打印的结果:
git log --pretty=oneline
如果想要回退到之前的版本,可以用reset
命令,--hard
参数会清除log中回退版本后的记录:
# 回退到上一个版本
git reset --hard HEAD^
# 回退到上上个版本
git reset --hard HEAD^^
# 回退到前十个版本
git reset --hard HEAD~10
# 通过版本号回退到指定版本
git reset --hard <log中显示的版本号,输入前几位即可>
如果找不到版本号,可以通过reflog
来查看版本号和对应的历史命令:
git reflog
四、使用远程仓库
基础设置
-
进行加密传输设置,确保只有你能进行推送操作。首先创建SSH Key:
ssh-keygen -t rsa -C <邮箱地址>
-
一路回车,根据默认值得到私钥和公钥文件:
id_rsa
和id_rsa.pub
-
登陆Github,点击右上角头像,选择
Settings
,选择SSH and GPG keys
,点击New SSH key
:随意输入一个Title,再把
id_rsa.pub
的文本内容粘贴到Key文本框里,最后点击Add SSH key
即可。
创建远程仓库
点击右上角+
号,选择New repository
,填选仓库名和相关配置,点击Create repository
进行创建。
连接远程仓库
-
拷贝SSH链接:
如果是空项目,该链接会在
Quick Setup
中给出;也可以进入仓库,点击Code
按钮,拷贝SSH链接得到。 -
在本地仓库下运行
git remote add <远程仓库名> <SSH链接>
来与远程仓库进行关联,如:git remote add origin git@github.com:xxx/xxx.git
推送
使用push
命令进行推送,如:
git push -u origin master
由于采用了-u
参数,在以后的推送中,就可以用git push
来简化命令。
初次提交可能会得到SSH警告,因为需要验证指纹信息,通常来源可靠的话输入yes回车即可。
克隆
使用clone
命令,如:
git clone git@github.com:xxx/xxx.git
五、其他操作
比较工作区和版本库里的文件:
git diff HEAD -- readme.txt
撤销工作区的修改,撤回到最近一次add
或commit
的状态:
git checkout -- readme.txt
撤销暂存区的修改,把修改回退到工作区:
git reset HEAD <文件路径>
删除文件:
rm <文件路径>
git rm <文件路径>
git commit -m <消息字符串>
误删文件,需要找回文件:
rm <文件路径>
git rm <文件路径>
# checkout命令实际上使用版本库里的文件替换工作区的文件,无论是修改还是删除操作,都可以一键撤回。
git checkout -- <文件路径>
删除本地仓库:
# 删除.git文件夹即可
rm .git
参考链接
[1] https://www.liaoxuefeng.com/wiki/896043488029600
[2] https://www.cnblogs.com/ycyzharry/p/10889420.html
[3] https://www.cnblogs.com/beeone/p/12254848.html