一、安装Git
1.在windows上:https://cdn.npm.taobao.org/dist/git-for-windows/v2.23.0.windows.1/Git-2.23.0-64-bit.exe
2.下载后默认安装
3.打开Git Bash,进行设置,因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
二、创建版本库
版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
1.创建一个版本库
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
其中pwd命令用于显示当前目录
2.通过git init 命令把这个目录变成Git可以管理的仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
此时可以发现当前目录下多了.git的目录,这个目录是Git来跟踪管理版本库的,不能随便修改这个目录里面的文件
3.编写一个readme.txt文件,如下
Git is a version control system.
Git is free software.
把这个文件放到Git仓库:
$ git add readme.txt
$ git commit -m "wrote a readme file"
三、添加远程库
1.现在是,你已经在本地上创建了一个Git仓库后,又想在GitHub上创建一个仓库,并且让这两个进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。
登录GitHub----->Create a new repo----->Repository:learngit----->Create repository,在GitHub上一个仓库就建成了,但是还是个空的。
2.由于本地Git仓库与GitGub仓库之间的传输是通过SSH加密的,所以需要设置:
$ ssh-keygen -t rsa -C "[email protected]"
创建了SSH key,邮件地址换成自己的,打开Git GUI—>help—>show SSH key就可以得到id_rsa.pub;登录GitHub,setting–>SSH keys—>填上任意Title,粘贴上id_rsa.pub里的内容。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
3.把一个已有的本地仓库与之关联;
$ git remote add origin [email protected]:michaelliao/learngit.git
把michaelliao替换成自己的名字,添加后,远程库的名字就是origin
4.然后把本地仓库的内容推送到GitHub仓库
$ git push -u origin master
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
Total 20 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5), done.
To github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样。
四、时光机穿梭
1.可以进行版本回退
$ git reset --hard HEAD^ //要把当前版本回退到上一个版本
$ git reset --hard 1094a //指定到某个版本,其中1094a就是之前提交的commit id
五、分支管理
1.创建分支并切换到dev分支
$ git checkout -b dev
查看当前分支
$ git branch
切换回master分支
$ git checkout master
把dev分支的工作成果合并到master分支上
$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
readme.txt | 1 +
1 file changed, 1 insertion(+)
合并完成之后,就可以删除dev分支了
$ git branch -d dev
查看branch
$ git branch
六、标签管理
1.创建标签
$ git tag v1.0
默认标签是打在最新提交的commit上的,也可以找到历史提交的commit id打标签
$ git tag v0.9 f52c633
$ git tag //查看标签
2.标签打错,删除:
$ git tag -d v0.1
Deleted tag 'v0.1' (was f15b0dd)
推送标签到远程
$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
要删除远程标签
$ git tag -d v1.0
$ git push origin :refs/tags/v1.0
七、实际应用
1.如何把本地已经写好的项目上传到GitHub
首先,在GitHub上登录账号,新建一个仓库
以下使用的是https方法,新建Test文件夹,将项目放进去,右击Test文件夹的根目录,点击"Git Bash Here",打开git命令行
git init
git add .
git commit -m “first commit”
git remote add origin https://github.com/shench5612390/Test.git //此处写自己的https地址
git push -u origin master
后面要求输入自己的GitHub的账号密码,完成。刷新就可以看到传上去了。。。
若想要了解更详细的Git教程,是参考自:https://www.liaoxuefeng.com/wiki/896043488029600/902335479936480