一、安装Git
二、配置Git
设置用户信息
第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
git config --global user.name "Mona Lisa"
git config --global user.email "email@example.com"
设置网络代理
需要时进行设置
git config --global http.proxy [url]
三、取得项目的Git仓库
1、在工作目录中初始化仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行:
git init
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
2、从现有仓库克隆
克隆仓库的命令格式为 git clone [url]
。
git clone git://github.com/schacon/grit.git #使用git协议
Git 支持许多数据传输协议,也可以用 http(s)://
或者 user@server:/path.git
表示的 SSH 传输协议。
四、记录每次更新到仓库
工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。而所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。
在编辑过某些文件之后,Git 将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件,如此重复。所以使用 Git 时的文件状态变化周期如图 2-1 所示。
检查当前文件状态
git status
跟踪新文件
使用命令 git add
开始跟踪一个新文件(放到暂存区)。所以,要跟踪 README 文件,运行:
git add README
要跟踪所有文件,运行以下任意一条命令:
git add -A
git add .
暂存已修改文件
使用命令 git add
把已修改的文件放到暂存区。所以,要暂存修改过的README文件,运行:
git add README
要暂存修改过的所有文件,运行以下任意一条命令:
git add -A
git add .
提交更新
确认还有什么修改过的或新建的文件还没有 git add
过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status
看下,是不是都已暂存起来了,然后再运行提交命令 git commit
:
git commit
git commit -m "description"
跳过使用暂存区域
Git 提供了一个跳过使用暂存区域的方式,只要在提交的时候,给 git commit
加上 -a
选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add
步骤:
git commit -a
git commit -a -m "description"
五、版本控制
查看提交记录
git log
查看操作记录
git reflog
版本跳转
根据以上两条命令,能得到每次提交的id,根据id可以跳转到任意版本,运行:
git reset --hard id
或以当前版本为基础,回退版本 ,运行:
git reset --hard HEAD^
注:HEAD表示当前版本,HEAD^表示上一个版本,可以写成HEAD~1,HEAD^^表示上两个版本,可以写成HEAD~2,以此类推。
六、撤销操作
撤销单个文件暂存(已add ——> 未add)
git reset HEAD <file>
撤销所有文件暂存
git reset HEAD
撤销单个文件修改(已修改未add ——> 未修改)
git checkout -- <file>
撤销所有文件修改(已修改已 add——> 未修改,相当于回退到上一次commit的版本)
git reset --hard
七、使用github、gitee等远程仓库
创建SSH Key
打开Git Bash,执行以下命令,并默认执行所有步骤
ssh-keygen -t rsa -C "your_email@example.com"
添加SSH Key
将在github、gitee添加,将上一步生成的id_rsa.pub文件中的内容复制过去
添加远程仓库(将本地仓库与远程仓库关联)
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,执行:
git remote add [shortname] [url]
从远程仓库抓取数据
从远程仓库抓取数据到本地,执行:
git fetch [remote-name]
此命令会到远程仓库中拉取所有本地仓库中还没有的数据。
推送数据到远程仓库
要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单: git push [remote-name] [branch-name]
。如果要把本地的 master 分支推送到 origin
远程仓库上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:
git push -u origin master
远程仓库的重命名和删除
比如想把 origin改成 paul
,可以这么运行:
git remote rename origin paul
想把paul远程仓库删除,可以这么运行:
git remote rm paul