创建SSH Key
1.注册GitHub账号。
2.创建SSH Key。windows + R
键同时按,打开运行命令窗口,输入.
进入家目录。
看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果有(那就奇了怪了!),一般第一次使用是没有的,真有的话可以直接跳过下面的命令。
打开命令行,执行命令:ssh-keygen -t rsa -C "dmneil7o@icloud.com"
邮箱是自己GitHub账号;它会让你选择路径,还会让你设置密码,这里最好全部都按照默认,一路回车下去,如下:
这时候我们再次打开家目录,会发现有一个.ssh
文件夹,如下:
id_rsa
是私钥,不能泄露, id_rsa.pub
是公钥,可以放心传播。
3.登录GitHub,打开settings
找到SSH Key
页面,点击New SSH Key
, 填上标题,同时在Key文本框中粘贴id_rsa.pub
文件的公钥内容。
点击Add SSH key
之后会跳转到输入密码的界面,我们需要输入GitHub密码来继续:
接下来我们就可以看到我们新加的SSH key了,如下:
添加远程库
需求是:我们有本地的Git仓库,又想在GitHub中创建一个Git仓库,并且希望这两个仓库进行远程同步,这样GitHub的仓库别人就可以来写作了。
1.在GitHub上创建一个仓库,在页面右上角➕
号选择新的仓库(New repository);
2.填入仓库名称就可以了,直接点创建,如下:
这时候一个新的仓库就建立完成了,目前这个仓库还是空的
页面提示说,我们可以有多种方法初始化这个仓库,我们按照给出的提示在本地仓库中运行下面的命令:git remote add origin https://github.com/duanmingpy/helloworld.git
git push -u origin master
这里使用的几个命令,其中git push
命令,实际上是把当前分支master推送到远程。
因为远程库是空的,第一次推送master增加一个-u
参数,这样Git不仅仅会把本地的master分支的内容推送到远程GitHub仓库中新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送和拉取就可以简化命令了。
我们刷新GitHub仓库的页面,这样就可以看到GitHub上的仓库和本地一模一样了。如下:
现在开始,只要本地有commit,就可以使用git push origin master
把本地master分支的最新修改交托给GitHub上了,现在就真正意义上的拥有了分布式版本库了。
创建与合并分支
在上篇文章的版本回退上我们就知道了,每次提交,Git都把它们串成一条时间线,这条时间线是一个分支。
到现在为止,我们还只有一个master主分支,HEAD严格来说是指向master,所以HEAD指向的就是当前分支,就像python中模块的__main__
特殊变量一样。
现在我们来创建新的分支:
1.查看所有分支命令git branch
2.git checkout -b 分支名
创建并切换到这个分支
git checkout
命令加上参数-b
就代表创建之后切换到,相当于两条命令:git branch dy
和 git checkout dy
相当于这两条。git branch
查看分支,会列出所有分支,当前分支前面有一个星号,上面用到了。
分支之间的工作
现在我们在dy分支上,我们在test.txt添加一行dddddddddd,再把它添加到版本库。
我们在dy分支上完成了提交之后,切换到main分支上查看test.txt,如下:
现在我们想要把dy分支上增加的内容合并到分支master分支上,可以在master分支上使用如下命令:git merge dy
暂时先总结一下创建与合并命令:
查看分支git branch 创建分支git branch name 切换分支git checkout name 创建+切换分支git checkout -b name 合并某分支到当前分支git merge name 删除分支git branch -d name
下面我们考虑:
如果在dy分支上我们修改提交了新内容,在main上也修改提交了新内容,那么我们在合并的时候取谁的呢?
还是一步一步来,
1先创建一个新分支叫做dy,因为刚才把它给删掉了
2查看一下README.md的内容
3添加一些新内容
4提交到版本库