1.下载git
官网速度慢,可以腾讯软件库里面下载
2.配置git
安装完成后有三个文件,git GUI、git CMD、git bash.
打开git base,因为是vim,所以界面和window带的cmd界面不一样。
2.1 配置用户名和邮箱
$ git config --global user.name "****" #*****处写上自己的名字
$ git config --global user.email "*****"
2.2 设置git仓库
先创建一个git仓库目录,通过下面的命令git自动在c:\user******下面创建一个目录文件夹git
$ mkdir firstgit #创建文件名为firstgit的文件夹,
$ cd firstgit #进入firstgitgit文件夹
$ pwd #显示firstgitgit文件夹路径
初始化仓库
$ git init
将返回 Initialized empty Git repository in C:/Users/****/git/.git/ ,.git中存放的文件一般不需要修改。
git有三个库:工作区,你正在编辑的文件;
暂存区,add命令后保存的位置,电脑上的一个隐藏文件夹内文件,git是管理“变化”,在这个区git会进行比较;
版本库,commit命令提交后保存的文件。
3 在git仓库中添加文件
在firstgit文件中创建一个txt文件first.txt,然后进行add和commit两步;后面提交其他版本也需要同时使用这两个命令。
$ git add first.txt
$ git commit -m "we push first file"
add 把文件提交给暂存区,每一次修改都需要先add,如果add之后修改txt,直接用commit,修改的内容不会提交;
commit是把暂存区的文件提交给在时间线的分支。
比较工作区和版本库的文件:
$ git diff HEAD -- “需要比较的文件”
3.1 状态查看
$ git status
3.2 更新后提交
再次提交需要重新使用add和commit命令。
3.3 查看历史记录
$ git log
显示所有提交的版本,最后提交的在最上面。
3.4 显示内容
$ cat ****
显示所有提交的版本,最后提交的在最上面。
4 版本回退
回退一个版本HEAD^(HEAD是指向最新版本的指针),如果打开了vs code(设置trust 文件夹),可以发现里面的内容已经变化。
$ git reset --hard HEAD^
前进回复,在没有关闭窗口的情况下:$ git reset --hard “commit id”,commit ID是log命令里面看到id前几位就可以。
$ git reset --hard “commit ID”
在关闭窗口的情况下,用relog命令查看commit id
$ git reflog
5 撤销修改
如果修改后不想提交到暂存区,包括已经提交到暂存区的修改,用checkout命令撤销所有修改,checkout实际是用版本库替换。
$ git checkout --first .txt
如果在暂存区,也可以使用reset把暂存区的文件回退到工作区,然后使用checkout撤销修改。
$ git reset HEAD first.txt
6 删除文件
手动删除一个文件,如果的确是需要删除的,
$ git rm first.txt
$ git commit
如果错误的删除了
$ git checkout --
7 远程仓库
7.1 生成hash秘钥
$ ssh-keygen -t rsa -C "youremail@email.com"
回车后创建了C:\Users\Administrator.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。然后登录github网站,在配置里面的Key文本框里粘贴id_rsa.pub文件的内容。有多台电脑,需要把每台电脑的Key都添加到GitHub。
7.2 建立远程仓库
- 建立远程库
登陆GitHub在右上角点击“Create a new repo”按钮,输入名字firstgit后,点击“Create repository”按钮,就成功地创建了一个新的Git仓库。 - 本地库和远程库连接
关联远程库:
$ git remote add origin git@github.com:githubusername/firstgit.git
将本地库推送到远程库()
$ git push -u origin master
- 本地库推送
把本地master分支的最新修改推送至GitHub
$ git push origin master
- 删除远程库和本地库的关联
$ git remote -v
$ git remote rm origin
- 先建立远程库再克隆到本地
登陆GitHub在右上角点击“Create a new repo”按钮,输入名字firsorigintgit后,勾选Initialize this repository with a README,点击“Create repository”按钮。
$ git clone git@github.com:githubusername/firsorigintgit.git
使用https地址的方式为:“git clone https:”,然后
$ cd fisrtorigingit
$ ls
README.md
8 分支
HEAD指向当前分支,master指向主分支的提交,不同的分支有一个指针,比如second,所以HEAD可以指向master也可以指向second。当创建了second后,对工作区的修改就是针对second分支,master指针不变。分支工作完毕,把master指针指向second就做到了分支的合并,删除second分支。
8.1 创建分支second
$ git branch second
$ git checkout second
也可以合并为$ git checkout -b second或者$ git switch -c second。如果分支已经存在就直接使用Switch命令
git switch second
然后查看分支:
$ git branch
结果:
- *second
然后编写,用add和commit提交。
8.2 合并分支
三步:先切换分支,在将其他分支合并到当前分支,删除分支
$ git checkout master #or git switch second
$ git merge second
$ git branch -d second
9 标签
git tag <tagname>
10 使用Github
如何参与一个克隆其他人的项目呢?先访问项目主页,点“Fork”在自己的账号下克隆了一个仓库,然后再从自己的账号下clone:
git clone git@github.com:*****/*****.git