Git和GitHub我就不进行详细介绍了(自行百度),主要记录搭建和使用的过程。
Git环境搭建
下载Git
可以去Git官网下载自己操作系统的Git,但是Git是命令行操作的使用起来不太方便,可以安装些带有GUI界面的:SourceTree、GitHub Desktop。但是如果初学还是在命令行中操作熟悉命令比较好。
设置Git
先要设置自己的身份,就是提交时其他人看到的名字。
windows打开Git Bash,macos和linux直接打开终端,输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
需要设置的内容有两条,一个是你的称呼,另一个是你的邮箱 。
Git的使用
跟踪新文件
打开终端(cmd/shell),创建一个文件夹 mkdir gittest
,进入刚创建的文件夹 cd gittest
,初始化仓库 git init
,初始化仓库后路径下会生成一个隐藏文件夹 .git,在路径下创建一个 hello.txt,在里面随便写点东西。
然后就可以使用git命令来进行版本控制了。使用 git add
开始跟踪 hello.txt 文件:
$ git add hello.txt
再运行 git status
命令,会看到 hello.txt 文件已被跟踪,并处于暂存状态:
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.txt
提交文件
现在就可以将暂存区的文件进行提交了:
$ git commit -m "添加了hello.txt"
提交时在 commit
命令后添加 -m
选项里面的内容是本次提交的说明。
[master (root-commit) 79e27aa] 添加了hello.txt
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
完成后会有上面的提示,提示一个文件被修改。在 hello.txt 再添加一行新内容练习一下上面方法,如果想跳过使用暂存区( git add
),在 git commit
加上 -a
选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交。
回滚
那现在我们有2次提交了,如果想回到第一次的文件怎么办呢,可以使用 git reset
命令:
```sh j $ git reset –hard HEAD^
`HEAD^`表示上一个版本,`HEAD^^`表示上上一个版本。
再来点复杂的,使用 `git log` 查看信息
```shell
$ git log
commit 0daae5813a75c655155d76fdde5757fd725ea959 (HEAD -> master)
Author: Hypo <zhb_hypo@163.com>
Date: Tue Jun 2 14:45:06 2020 +0800
nihao
commit 79e27aa04272e8b757a22c6508166e594c9a94e4
Author: Hypo <zhb_hypo@163.com>
Date: Tue Jun 2 11:47:18 2020 +0800
添加了hello.txt
每次提交都会有一个 commit id 这个就是每个版本的版本号我们可以使用这个id来回到任意一个版本,版本号不需要写全,前几位就可以了,会自动去找到对应的版本。
$ git reset --hard 79e27aa0
移除文件
那要从Git中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交。用 git rm
命令完成此项工作:
$ git rm hello.txt
并从工作目录中手动删除文件, 这样就不会出现在未跟踪文件清单中了。
GitHub的使用
GitHub是一个云端的托管平台,上面有许多开源项目。官方文档
注册账号
先注册一个账号GitHub官网
克隆仓库
随便选择一个仓库克隆下:https://github.com/spmallick/learnopencv
$ git clone git@github.com:spmallick/learnopencv.git
等待一会儿仓库就克隆好了。十分的方便。
创建自己的GitHub仓库
先创建SSH Key
ssh-keygen -t rsa -C "youremail@example.com"
邮件地址换成你自己的邮件地址,在用户主目录下会生成一个 .ssh 文件夹,文件夹里面有 id_rsa 和 id_rsa.pub 两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。
GitHub 需要使用 SSH Key 来识别这次提交的身份,如果有若干台电脑需要把每台电脑的key都添加到GitHub。
打开id_rsa.pub ,复制里面的内容。
登陆GitHub,打开 settings->SSH Keys and GPG keys->New SSH key
,在Key文本框里粘贴复制的内容即可(传送门)。
创建自己的仓库,右上角‘+’->New repository
(传送门)。
填写仓库名和描述,仓库是公开的还是私有的,进行一些简单选择后点击 Create repository 。创建就完成了。现在就只要把我们本地的代码与云端的关联起来就可以了。
还是进入之前已经创建好的 gittest 文件夹执行
$ git remote add origin git@github.com:YourName/Gittest.git
完成后远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
下一步,就可以把本地库的所有内容推送到远程库上:
$ git push -u origin master
我们第一次推送master分支时,加上了-u参数,会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来。