本文参考了《GitHub入门与实践》这本书
一、git使用前准备
git本地仓库与github远程仓库连接时要有认证,是通过SSH的公钥进行认证的。
1.创建SSH公钥并将添加到github中
在用户目录下查看.ssh文件夹
如果没有这个文件夹或者文件,需要手动创建
在Program Files文件夹下找到Git/bin目录,双击sh.exe
输入以下命令,一路回车会创建.ssh文件夹和其中的密钥
$ ssh-keygen -t rsa -C "xxxx@xx.xx"
用记事本打开id_rsa.pub文件,将其中的公钥复制。
打开https://github.com,打开设置页
将前面复制的公钥粘贴到文本框中
现在就建立了本地仓库与远程仓库之前的认证。
2.验证
二、github远程仓库创建
本地仓库与远程仓库的连接有三种方式:
1、初始化本地仓库,然后将本地仓库推送到远程仓库;
2、将一个已有的本地仓库推送到远程仓库;
3、clone一个远程仓库到本地。
三、git基本操作
1、初始化:git init
新建一个文件夹gitdemo并初始化
$ cd g:
Administrator@User-14 MINGW64 /g
$ mkdir gitdemo
Administrator@User-14 MINGW64 /g (master)
$ cd gitdemo
Administrator@User-14 MINGW64 /g/gitdemo
$ git init
Initialized empty Git repository in G:/gitdemo/.git/
Administrator@User-14 MINGW64 /g/gitdemo (master)
$
初始化会在当前文件夹下创建一个.git的文件夹,此文件夹存储着管理当前目录内容所需的仓库数据。
2、查看本地仓库状态: git status
Administrator@User-14 MINGW64 /g/gitdemo (master)
$ git status
On branch master //当前在master分支
No commits yet //没有过提交记录
nothing to commit (create/copy files and use "git add" to track) //暂存区没有要提交的文件
在当前文件夹下创建一个文件后再次查看仓库状态
$ git status
On branch master
No commits yet //没有过提交记录
Untracked files: //存在一个没有被git跟踪的文件
(use "git add <file>..." to include in what will be committed)
test.txt
//没有需要提交的,但是存在没有被git跟踪的文件
nothing added to commit but untracked files present (use "git add" to track)
3、将文件添加到暂存区:git add 文件名/git add .
. 代表的是添加所有的文件到暂存区
上面创建的test.txt文件,由于没有git操作因此是不会被git跟踪的,git向仓库中添加要先将工作区文件添加到暂存区后才能提交到仓库。
Administrator@User-14 MINGW64 /g/gitdemo (master)
$ git add test.txt //将文件添加到暂存区
Administrator@User-14 MINGW64 /g/gitdemo (master)
$ git status
On branch master
No commits yet
Changes to be committed: //暂存区中没有提交的文件
(use "git rm --cached <file>..." to unstage)
new file: test.txt
当test.txt文件内容更改时,再次查看状态
$ git status
On branch master
No commits yet
Changes to be committed: //暂存区中存在没有被提交的文件
(use "git rm --cached <file>..." to unstage)
new file: test.txt
Changes not staged for commit: //文件改变了但是没有添加到暂存区
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test.txt
4、提交暂存区文件到本地仓库:git commit -m "description"
Administrator@User-14 MINGW64 /g/gitdemo (master)
$ git commit -m "first" //提交暂存区文件
[master (root-commit) dc1a2af] first
1 file changed, 1 insertion(+)
create mode 100644 test.txt
========text.txt文件改变了===========
Administrator@User-14 MINGW64 /g/gitdemo (master)
$ git status
On branch master
Changes not staged for commit: //以下文件存在改动但是没有提交暂存区
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>.