Git傻瓜教程
下载和安装git
浏览器搜索git,进入官网,https://git-scm.com/
官网内找到Download,选择适合电脑的版本进行下载。
下载完成后,点击.exe文件直接安装即可(直接每一步都点击next)。
win电脑,安装完成后,在开始菜单里找到 “git -> git bansh",蹦出⼀个类似命令行的东西,就说明安装成功了。
Git个人相关全局信息设置
$ git config --global user.name "username"
$ git config --global user.email "email@example.com"
初始化仓库
新建空目录
- 手动新建文件夹
- 或者在Git Bash 命令行中输入:
$ mkdir mymenu
$ cd mymenu
$ pwd
/Users/hxk/mymenu
初始化仓库
在新建的文件夹下进行初始化,可以使用在新建的文件夹下右击选择git bash打开命令行进行操作,输入:
$ git init
初始化了一个空的仓库,目录下多了.git目录
系统自动创建了唯一一个master分支
将仓库clone到本地(下载)
$ git clone https://gitee.com/lxrSiri/Machine-Learning.git
以本人gitee仓库为例,复制如图中的链接即可clone
即可把远程仓库的东西下载到本地
Git文件操作
查看文件状态
文件有四种状态:
-
Untracked:未跟踪
此文件没有加入到 Git 库,不参与版本控制。
通过 git add 变为 Staged 状态。 -
Unmodify:未修改
文件加入了 Git 库,未修改。
版本库中的文件快照内容与文件夹中完全一致。
这种类型的文件有两种去处:
如果它被修改,而变为Modified。
如果使用 git rm 移出版本库,则变为 Untracked 状态。 -
Modified:已修改
仅仅是修改,并没有进行其他的操作。
这个文件也有两个去处:
通过 git add 可进入 Staged 状态。
使用 git checkout 放弃修改,返回到 Unmodify 状态。
git checkout 是从库中取出文件,覆盖当前修改。 -
Staged:暂存
执行 git commit 将修改同步到库中。
这时库中的文件和本地文件又变为一致,文件为 Unmodify 状态。
执行 git reset HEAD filename 取消暂存,文件为 Modified 状态。
$ git status
$ git status [filename] //查看指定文件状态
此时没有文件被跟踪
在文件夹新建一个文件,如hello.txt
再次git status
看到,依旧是未跟踪状态
提交文件
在上步情况下,需要输入命令,添加所有文件到暂存区
$ git add .
如图,此时文件成功存入暂存区,且注意,add
. 之间有空格
$ git commit -m
该步骤作用为,提交暂存区所有东西到本地仓库
-m:提交信息
-m后也可跟想要提交的单个文件
如图所示,提交了hello.txt到本地,再次查看状态发现没有需要提交的东西了。
所以,一般情况下一整个项目内容在单独文件夹,即可直接提交所有文件,比较方便
忽略文件
提交文件时,有些文件不想被提交,如一些配置文件
此时需要在工程中主目录下新建一个.gitignore文件,有以下规则:
- 忽略文件中的空行或以 # 开始的行将会被忽略。
- 可以使用 Linux 通配符。例如:* 代表任意多个字符,? 代表一个字符,[ ]代表可选字符范围,{ } 代表可选的字符串。
- 如果名称的最前面有一个 !,表示例外规则,将不被忽略。
- 如果名称的最前面是一个 /,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
- 如果名称的最后面是一个 /,表示要忽略的是此目录下的所有文件。
*.txt # 忽略所有 .txt 结尾的文件,这样的话上传就不会被选中。
!lib.txt # lib.txt 除外
/temp # 仅忽略项目根目录下的 temp 文件,不包括其它 temp 目录。
build/ # 忽略 build/ 目录下的所有文件。
doc/*.txt # 忽略 doc/notes.txt 但不包括 doc/server/arch.txt。
修改文件
修改了hello.txt文件,在里面写入了内容ABC
可以使用和提交文件相同的步骤进行修改操作
$ git add .
$ git commit -m "append ABC"
如图,修改完成
查看历史记录
$ git log
git log显示最近到最远的提交日志,我们可以看到两次提交,最后一次是append ABC
git的版本号是用SHA1计算出来的一个16进制数
如果嫌输出信息太多,可以加上–pretty=oneline
回退历史版本
$ git reset --hard HEAD^
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb…,上一个版本就是 HEAD ^ ,上上一个版本就是 HEAD^ ^ , 当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
如图,在回退一个版本后,再查看历史记录,就只有最初的一个了,没有修改的那一步
另一种撤销修改方法:
$ git checkout -- hello.txt
命令 git checkout – hello.txt 意思就是,把hello.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:
- hello.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
- 另外一种是hello.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
查看历史命令
要是不记得刚才的版本号了,可以使用以下命令
$ git reflog
查看文件内容
$ cat hello.txt
删除文件
$ rm 666.txt
666.txt文件即可被删除
也可以在commit前恢复该删除的文件,输入:
$ git checkout -- 666.txt
使用码云
使用github或gitee,由于github有墙,访问太慢,所以我一般使用gitee
gitee官网:https://gitee.com/
没有的可以去注册一个账户
内部有许多开源项目可供下载使用。
欢迎参观作者的gitee:https://gitee.com/lxrSiri
配置SSH公钥
点击右上角的设置
点击左侧SSH公钥
点击此处,查看如何生成公钥
直接输入:
$ ssh-keygen
一直回车,如图
下一步,找到用户登录文件夹,我的是在C:\Users\89556,一般是在C:\Users\administrator
有一个.ssh文件夹
文件夹里此时已成功生成两个文件
打开.pub文件,将里面内容复制到gitee公钥的地方
点击确定即可添加成功
使用码云新建仓库
直接右上角新建仓库即可,不再赘述
将本地项目上传到仓库
新建仓库完成后先把他clone到本地文件夹
将项目放到clone下来的文件夹中
$ cd Front-end(cd后是文件夹名)
再输入
$ git add .
$ git commit -m "操作名称"
如下图:
最后输入
$ git push -u origin master
如下图,即成功上传,此时刷新gitee仓库页面,可看到成功上传。
to be continue