我们前面已经讲了那么多理论知识,都是在本地仓库运行,下面就让我们在GitHub上面小试身手。
- 我们首先需要在GitHub上面创建一个自己的仓库,在这里我们使用的是SSH协议。
我们在使用GitHub创建仓库的时候,会让我们选择readme文件什么的,这样我们创建的仓库就不是空仓库了,当我们将自己本地代码提交上去的时候就会有冲突,所以下面讲到怎么解决冲突。
创建好仓库之后,就可以把本地文件提交到GitHub上面的仓库。
git remote add github git@github.com:zhanghangcode/git_learn.git #后面的两个参数 github(仓库名) SSH地址
pull与fetch的区别:git pull 把GitHub(服务器端)的分支拉的本地,并且与本地的分支做比较。git fetch 只是把GitHub(服务器端)的分支拉的本地。
git pull 把远端的分支拉的本地,并且与本地的分支做比较。
git fetch github 全部分支
git fetch github master #把远端的分支拉的本地 指定分支
git branch -va 查看远端与本地的全部分支
git push github --all #push本地的所有的分支
git push github master #将本地的分支提交到服务器上
指定本地分支的代码提交的服务器端 ,因为服务上面的fast forward与本地不同所有提交失败。所以就要使用我们在工作中经常使用的merge指令了。
git merge github/master #合并远端和本地的分支
我们使用上面的merge命令失败,在这个时候应该怎么办呢,去百度应该能够找到答案,但是不如直接向Git寻求帮助。
git merge -h #在命令后面添加 -h 就会把这个命令的参数全部列出来,所以这应该是必须要掌握的
在上面的解释中我们可以看到–allow-unrelated-histories 后面有与我们刚才报错的内容是一致的。
git merge --allow-unrelated-histories github/master #合并远端和本地的分支
最后冲突解决了,那就让我们提交到GitHub上面吧。
git push github master #将本地的分支提交到服务器上
- 上面我们讲了怎么把本地的代码remove到远端,下面就是讲怎么把远端的代码clone到本地。
git clone git@github.com:zhanghangcode/git_learn.git git_clone
更改同一个文件内容的相同地方的时候,merge不会自动处理,需要我们手动处理。
git push github master #直接提交会报错
git pull github master #需要先从服务端拉下来
然后需要更改一下有冲突的文件内容,再次重新提交即可。
vim index.html
git status
git commit -am'add comment dd2'
git status
再次重新提交成功
git push github master
- 如何在GitHub上面搜索
我们在search框里面直接搜索的时候,大多数都不是我们想要的或者是搜到的项目很少,那是因为直接搜索的话,搜索的内容是在仓库的名字和描述里面的。
搜索内容+in:readme 这样搜索的话,会在readme文件里面的关键字匹配
搜索内容+in:readme stars:>1000 设置star的数量大于1000