git安装

首先去官网下载git,并安装

安装完成后,还需要最后一步设置,在命令行输入:

1
2
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库(仓库)

1
2
3
mkdir learngit
cd learngit
git init //将该目录变成Git可以管理的仓库

增加了.git目录,这个目录默认是隐藏的,用ls -ah命令显示

这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪(所有的版本控制系统,其实只能跟踪文本文件的改动),以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

把文件添加到版本库

首先把文件放入这个目录

1
git add readme.txt //git add命令 将文件添加到仓库

1
git commit -m "wrote a readme file" //git commit命令将文件提交到仓库,-m后面加本次提交说明

git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)

为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件

提交修改和提交新文件是一样的两步

git add命令实际上就是把要提交的所有修改放到暂存区(Stage),然后,执行git commit就可以一次性把暂存区的所有修改提交到分支

注意,在git add以后,对文件的任何修改,都不会被提交,必须重新再add以后,才能提交新的修改(git commit只负责把暂存区的修改提交了

查看仓库状态

运行git status命令查看结果

1
Changes not staged for commit:modified: xx.txt //说明文件被修改了,但是没有执行add 和 commit

当修改好,再执行add命令以后,再用status看结果

1
Changes to be committed: modified: xx.txt //文件将要被提交(执行了add  没有执行commit)

执行commit命令提交以后,再用status看结果

1
nothing to commit, working tree clean //工作目录干净,而且没有需要提交的

查看和撤销文件修改

git diff可以查看修改内容

git checkout -- file可以丢弃工作区的修改,让这个文件回到最近一次git commitgit add时的状态

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,git reset --hard HEAD^ //回退到上一个版本,不过前提是没有推送到远程库。(这就是有没有--hard的区别吧)

查看历史记录

git log

git log命令显示从最近到最远的提交日志

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数git log --pretty=oneline

在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写成HEAD~100

1
2
git reset --hard HEAD^  //回退到上一个版本
git reset --hard 1094a  //回退到指定版本,指定commit id就好,commit id可以简写

若找不到commit id了(关机了,关掉命令行窗口了)

Git提供了一个命令git reflog用来记录你的每一次命令,可以从结果找到commit id

删除文件

首先手动删除文件

再用命令git rm删掉,并且git commit

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

1
$ git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

克隆远程库到本地并推送

1.右键单击桌面空白处,选择Git Gui Here,进去之后,选择左上角的help选项,会出现一个Show SSH Key,然后点击“Generate Key”得到秘钥。将其复制到剪切板

2.打开GitHub,登陆后,打开设置界面,在SSH Keys栏中点击“Add SSH key”按钮,然后复制上面生成的秘钥

3.克隆远程库到本地(在命令行中输入这个)

1
git clone https://github.com/yoyoketang/yoyoketang.git

4.新增文件(将需要的文件和文件夹放入新增的目录)

5.使用git add * (*是更新全部)

6.接着输入git commit -m "更新说明“

7.如果是多人同时开发维护代码,得先git pull ,拉取当前分支最新代码

8.最后git push origin master,最后一步才是push到远程的master分支上