一、创建项目
1.创建一个项目文件
2.新建本地仓库
- 使用
git init
命令用于对当前目录进行初始化,将当前的目录交由Git 进行管理
初始化仓库
- 切换到已有文件的目录:
cd xx
- 使用建立仓库命令:
git init
- 在已有文件的目录下会显示.git文件夹,文件夹内容如下:
.git文件夹
新建空仓库
- 切换到想要创建仓库的目录:
cd xx
- 使用建立仓库命令:
git init "xx"
,xx为创建的文件夹名,创建成功之后,xx目录下会显示.git文件夹
注意:如图“创建成功提示”,说明创建成功,但是看不到.git文件夹,可能该文件夹被隐藏,设置显示隐藏文件夹即可


3.配置个人信息
- 设置仓库人员的用户名和邮箱地址
- 设置用户名:
git config --global user.name "xx"
,xx为用户名 - 设置邮箱地址:
git config --global user.email "xx"
,xx为邮箱地址
- 设置用户名:
4.提交测试文件到本地仓库
正常提交
- 创建文件之后,通过
ls
命令查看当前目录下的文件及文件夹。 - 通过
git status
命令查看当前项目下所有文件的状态。会显示当前处于master(主)分支,罗列当前项目下的文件,并且提示使用“git add <file>...”命令对当前项目文件进行跟踪(跟踪文件增、删、改的状态)。 -
git add
命令将文件交由git 进行跟踪。如果后面跟空格加点号“.”,则表示对当前项目下的所有文件进行跟踪。再次通过git status
命令查看当前Git 仓库的信息。 -
git commit
命令将文件(由git 跟踪的文件)提交到本地仓库。-m 参数对本次的提交加以描述,通常提交的描述必不可少,从而方便追溯每次提交都做了哪些修改。 - 准备工作已经完成,下面提交代码到GitHub。这里GitHub 提供了两种连接方式:HTTPS和SSH,提交的地址有所不同,可查看前面GitHub 提示信息。
在提交过程中修改
-
回退版本:回退版本指在commit提交代码之后,工作区回退到之前版本,版本回退,只是本地的。不会影响git库中的内容。
- 方法一:
-
git reset --hard HEAD^
- HEAD表示当前最新版本
- HEAD^表示当前最新版本的前一个版本
- HEAD^^表示当前最新版本的前两个版本,以此类推
- HEAD~1表示当前最新版本的前一个版本
- HEAD~10表示当前最新版本的前10个版本,以此类推
-
- 方法二:当版本非常多时,通过每个版本的版本号回退到指定版本
git reset --hard 版本号
- 方法一:
注意:版本回退之后,commit后的代码还在仓库区
-
提交代码:
git push -f
,强制提交代码。
注意:版本回退某一个版本,然后提交代码,必须要强制提交,才会提交成功。如果此时觉得旧版本有问题,想在本地仓库返回到最新版本,然后再提交,则使用回退命令返回到最新版本,使用git push
,不需要强制提交代码,也能提交成功。
- 撤销修改:
-
新建文件修改
- 在工作区创建新文件,新增内容之后,不能撤销内容,只能使用
rm
命令删除文件 - 将文件从工作区添加至暂存区之后,可以使用
git reset HEAD 文件名
,将文件从暂存区移动工作区,在工作区之后,同样不能撤销内容,只能使用rm
命令删除文件
- 在工作区创建新文件,新增内容之后,不能撤销内容,只能使用
-
原有文件上修改
- 在工作区原有文件上修改文件,未添加至暂存区,可以使用
git checkout 文件名
撤销工作区文件的修改 - 将文件从工作区添加至暂存区之后,
- 撤销暂存区代码:
- 第一步:
git reset HEAD 文件名
,将暂存区代码撤销到工作区 - 第二步:
git checkout 文件名
,撤销工作区代码
- 第一步:
- 撤销暂存区代码:
- 将文件从暂存区添加至仓库区之后,
-
修改文件,在修改文件的基础上撤销本次修改,那么文件将会移动工作区,此时支持如下操作:
- 撤销工作区代码:撤销代码之后,修改的内容消失,文件会回到仓库区
git checkout 文件名
- 撤销工作区代码:撤销代码之后,修改的内容消失,文件会回到仓库区
-
不修改文件,撤销本次commit提交,,此时支持如下操作:
- 完成撤销,同时将代码恢复到之前commit提交id对应的版本
-
git reset –hard id
,通过git log
命令查看历史提交记录,找到想要回退到版本的id,使用git reset –hard id
命令会彻底回退到某个版本,本地的源码也会变为上一个版本的内容
注意:git reflog
可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)- 例如执行
git reset --hard HEAD~1
,退回到上一个版本,用git log
则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,在HEAD后面添加被删除commitid,恢复到被删除的那个版本。
- 例如执行
-
- 完成撤销,同时将代码恢复到之前commit提交id对应的版本
-
修改文件,在修改文件的基础上撤销本次修改,那么文件将会移动工作区,此时支持如下操作:
- 在工作区原有文件上修改文件,未添加至暂存区,可以使用
- 版本对比:
- 对比暂存区和工作区
-
git diff
:直接使用git diff
默认对比暂存区和工作区
-
- 对比本地仓库区和工作区
- 在工作区,修改文件,不添加到暂存区,--代表仓库区,++代表工作区
-
git diff 版本号
:对比仓库区某一个版本跟工作区的区别 -
git diff HEAD
:对比仓库区最新版本跟工作区的区别
- 对比本地仓库各版本代码
git diff HEAD HEAD^
5.提交测试文件到GitHub
-
git remote add origin git@github.com:defnngj/project-name.git
:-
add后面定义的名字是把本地仓库和远程仓库的连接方式名字,可随便定义,再之后就是SSH地址,表示是把代码提交GitHub的哪一个仓库
SSH地址
- 如果是第一次提交项目,通过这一行命令将本地的项目与远程的仓库建立连接。此处使用SSH 方式进行连接
-
-
git push -u origin master
- 将本地的项目提交到远程仓库的主分支
- 如果建立了本地分支与远程分支的映射关系(或者为跟踪关系track),则直接使用
git push
网友评论