git 安装
下载安装地址:https://www.git-scm.com/download/
下载完成后运行.exe文件进行安装,安装过程我就一直next。
安装完成后在开始菜单栏找到Git.Bash进行进一步设置
在命令行输入
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
关于email,写错了也无所谓,但如果你想规范一点,可以在github上注册一个账户,email可以写github上的邮箱地址
命令行git version查看是否安装成功:
创建版本库repository
在本地磁盘中创建文件夹
$ mkdir gitDemo
$ cd gitDemo
初始化文件夹
$ git init
Initialized empty Git repository in D:/gitDemo/demo2/.git/
ll命令查看当前目录下的所有文件
$ ll
total 1
-rw-r--r-- 1 user 197609 10 6月 11 23:29 test.txt
1.git add <file>
将文件存入暂存区,可add多个文件,用空格隔开;
2. git commit -m "描述"
将暂存区的文件提交到本地仓库中;
3. git status
查看当前git状态
工作流
基本概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
当
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:
修改了本地磁盘文件后需再使用git add||git commit
命令提交至仓库
撤销修改
我们修改test.txt文件并添加到暂存区后发现版本或修改错误,使用
$ git reset HEAD test.txt
Unstaged changes after reset:
M test.txt
将暂存区文件返回至工作区,并使用git checkout -- file
丢弃工作区的修改
版本回退
git log
可查看从最近到最远的提交日志 cb249617f49a567477eb5410cb1e079e0fe324ab
是版本号
$ git log
commit cb249617f49a567477eb5410cb1e079e0fe324ab (HEAD -> master)
Author: gaye <xiaohai1612@outlook.com>
Date: Wed Jun 12 09:19:24 2019 +0800
second commit
commit ee536f58d72420f74e4e25cf6c6e287dc6a574a9
Author: gaye <xiaohai1612@outlook.com>
Date: Wed Jun 12 09:15:30 2019 +0800
first commit
我们也可以回退到更早之前的版本,第一次提交的版本,可用$ git reset --hard 第一次提交版本号
来回退至first commit的版本
删除文件
我们在工作区中删除文件可以使用$ rm demo2.txt
命令,但是仅仅删除的是工作区中的文件,暂存区和仓库还存在此文件
所以,我们要使用git rm demo2.txt
从版本库中删除该文件,并且$ git commit -m "remove demo2.txt"
现在,文件就从版本库中被删除了。
远程仓库
目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。
如果你是大神,完全可以自己搭建一台运行Git的服务器,这里我使用的时github的远程仓库。
在使用github远程仓库前,请先自行到官网注册账号github
- 创建SSH Key。使用
$ ssh-keygen -t rsa -C "youremail@example.com"
命令,一直enter,完成后系统会在用户主目录下生成.ssh目录,我的是C:\Users\.ssh
。里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。 - 登陆GitHub,打开“Account settings”,“SSH Keys”页面:如果是第一次使用github,是没有ssh key的,需要自己添加
填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;点击Add SSH key
重新登陆后,SSH key就生成成功了。
GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
之后可以使用$ ssh -T git@github.com
看是否与git关联上。
第一次会弹出SSH警告,输入yes即可
$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi xiaohai9090! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T git@github.com
Hi xiaohai9090! You've successfully authenticated, but GitHub does not provide shell access.
添加远程仓库
在github上点New repository新建一个仓库
新建成功后,仓库还是空的,我们需要把本地仓库与远程仓库关联起来
使用$ git remote add origin git@github.com:xiaohai9090/gaye.git
注意用自己的github账户
之后$ git push -u origin master
将本地仓库内容推到远程仓库中,这里第一次推送使用-u参数,之后可以不用加-u,直接 git push就可以
克隆仓库
克隆仓库是将远程github仓库复制到本地仓库中,使用以下命令
$ git clone git@github.com:xiaohai9090/gaye.git
Cloning into 'gaye'...
Warning: Permanently added the RSA host key for IP address '13.229.188.59' to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
成功后在本地目录下可以找到gaye文件夹。之后修改gaye里的文件后git add || git commit||git push
就能推送至远程仓库中
另外,附加初学git时常用到的命令
git init : 初始化文件夹
git add xxx.txt: 将文件添加到git 暂存区
git commit -m “描述”:将暂存区文件添加到本地仓库,并描述
git reset HEAD demo.txt:将暂存区文件回滚
git log:可查看从最近到最远的提交日志
git reset --hard xxx哈希码xxx :将本地仓库文件回滚至哈希码对应的状态中
git status :查看git状态
git rm demo.txt: 删除仓库中demo.txt文件
git remote add origin git@github.com:xiaohai90090/gaye.git
git push :推送至远程仓库