参考:GIT教程
感谢飞天大盗飞来飞去总结的一张图,非常有用:
1.搭建ssh环境
首先,创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第二步登陆GitHub,打开“Account settings”,“SSH and GPG Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
2.关联远程库,并推送
首先在本地库路径下运行命令,git地址换成自己的git地址
git remote add origin git@github.com:Musing9*/*****.git
这样就关联了远程库.
如果上一步地址输错,可执行命令删除远程origin配置
git remote rm origin
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push -u origin master
之后推送只需要执行:
git push origin master
3.从远程库克隆
git clone git@github.com:Musing9*/****.git
4.分支
4.1创建与合并分支
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master
分支。HEAD
严格来说不是指向提交,而是指向master
,master
才是指向提交的,所以,HEAD
指向的就是当前分支。
一开始的时候,master
分支是一条线,Git用master
指向最新的提交,再用HEAD
指向master
,就能确定当前分支,以及当前分支的提交点
当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
创建并切换到分支:
git checkout -b dev
等同于
git branch dev
git checkout dev
查看分支:
git branch
更改文件并提交:
echo "add a branch " >> readme.txt
git add readme.txt
git commit -m "add a branch"
切回master主干
git checkout master
此时dev分支领先于master分支,如下图:
下一步将分支与master合并:
git merge dev
此时,master内容和分支dev内容一致,因此可以删除分支:
git branch -d dev
分支工作完成时候可以选择是否推送到远程库github
git push origin master
分支操作命令总结:
git分支冲突解决
git stash //保存现场,用于程序未写完临时需要返回其他版本
git stash list//查看保存的工作现场
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了:
git标签管理
git checkout master//切到分支
git tag v1.0 //加标签
查看标签
git tag