GitHub上传代码
默认已有账户
首先创建一个仓库(repository),并初始化一个Readme;
然后配置git:
git config --global user.name "你的github用户名"
git config --global user.email "你的github邮箱地址"
创立一个文件夹,命名为Git(推荐),将自己想要上传的代码复制过去;
初始化这个文件夹:
git init
将Git文件夹和刚刚创建的仓库关联起来:
git remote add origin https://github.com/github用户名/github仓库名.git
上述命令中origin只是个命名,一个本地仓库可以关联多个远程仓库(GitHub上创立的),只需要更改关联的命名就可以。
关联好后就可以进行一些操作了,比如:
git add .
将所在文件夹里所有内容提交到git的缓存空间;
再填写对提交内容的介绍:
git commit -m 'xxxx'
最后将所有内容push到远程仓库:
git push origin master
此时origin对应刚刚关联的远程仓库的名称。
GitHub实战:搭建github.io博客
搭建这个博客主要是参考大佬白夜行的狼的博客,GitHub地址:https://github.com/HaoQChen/HaoQChen.github.io.git
将大佬的博客fork,然后clone;
按照https://www.jianshu.com/p/e68fba58f75c更改config.yml;
然后创建自己的github.io,将clone的文件remote到自己的github.io;
每次写完博客放在_post文件夹下,push到自己的github.io就OK了。
Git设置socks5代理
有的时候git clone的速度实在是太慢太慢了,对于有vpn的同学完全可以设置个代理来提速。
首先查看浏览器的代理IP和端口(如图):
然后对应着填写:
git config --global http.proxy 'socks5://127.0.0.1:10808'
git config --global https.proxy 'socks5://127.0.0.1:10808'
然后再clone的时候就不会龟速了QAQ
GitHub使用中的错误总结
在执行git push origin master
时有可能会出现报错:
error: failed to push some refs to '*********'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这是因为本地仓库有一些远程仓库没有的东西,所以不能够将本地仓库push。
解决方法为:git pull origin master
,origin为上述关联的仓库,这样就把关联的远程仓库master分支的内容pull到本地仓库了,再次push就不会出错。
Github常用命令
git remote add origin https://Magical-E/XXXX.git
git add. && git commit -m 'new'
git push origin master
git branch new_branch_name
git branch
git chechout new_branch_name
git checkout master
git merge new_branch_name
GitHub命令大全
git remote add
git init
:初始化本地库
git status
:查看工作区、暂存区的状态
git add <file name>
:将工作区的“新建/修改”添加到暂存区
git rm --cached <file name>
:移除暂存区的修改
git commit <file name>
:将暂存区的内容提交到本地库
tip:需要再编辑提交日志,比较麻烦,建议用下面带参数的提交方法
git commit -m "提交日志" <file name>
:文件从暂存区到本地库
git log
:查看历史提交
tip:空格向下翻页,b向上翻页,q退出
git log --pretty=oneline
:以漂亮的一行显示,包含全部哈希索引值
git log --oneline
:以简洁的一行显示,包含简洁哈希索引值
git reflog
:以简洁的一行显示,包含简洁哈希索引值,同时显示移动到某个历史版本所需的步数
git reset --hard
: 简洁/完整哈希索引值:回到指定哈希值所对应的版本
git reset --hard HEAD
:强制工作区、暂存区、本地库为当前HEAD指针所在的版本
git reset --hard HEAD^
:后退一个版本
tip:一个^表示回退一个版本
git reset --hard HEAD~1
:后退一个版本
tip:波浪线~后面的数字表示后退几个版本
git diff
:比较工作区和暂存区的所有文件差异
git diff <file name>
:比较工作区和暂存区的指定文件的差异
git diff HEAD|HEAD^|HEAD~|哈希索引值 <file name>
:比较工作区跟本地库的某个版本的指定文件的差异
git branch -v
:查看所有分支
git branch -d <分支名>
:删除本地分支
git branch <分支名>
:新建分支
git checkout <分支名>
:切换分支
git merge <被合并分支名>
:合并分支
tip:如master分支合并 hot_fix分支,那么当前必须处于master分支上,然后执行 git merge hot_fix 命令
tip2:合并出现冲突
①删除git自动标记符号,如<<<<<<< HEAD、>>>>>>>等
②修改到满意后,保存退出
③git add
④git commit -m “日志信息”,此时后面不要带文件名
git clone <远程库地址>
:克隆远程库
功能:①完整的克隆远程库为本地库,②为本地库新建origin别名,③初始化本地库
git remote -v
:查看远程库地址别名
git remote add <别名> <远程库地址>
:新建远程库地址别名
git remote rm <别名>
:删除本地中远程库别名
git push <别名> <分支名>
:本地库某个分支推送到远程库,分支必须指定
git pull <别名> <分支名>
:把远程库的修改拉取到本地
tip:该命令包括git fetch,git merge
git fetch <远程库别名> <远程库分支名>
:抓取远程库的指定分支到本地,但没有合并
git merge <远程库别名/远程库分支名>
:将抓取下来的远程的分支,跟当前所在分支进行合并
git fork
:复制远程库
tip:一般是外面团队的开发人员fork本团队项目,然后进行开发,之后外面团队发起pull request,然后本团队进行审核,如无问题本团队进行merge(合并)到团队自己的远程库,整个流程就是本团队跟外面团队的协同开发流程,Linux的团队开发成员即为这种工作方式。
git merge <远程库别名/远程库分支名>
:将抓取下来的远程的分支,跟当前所在分支进行合并
git fork
:复制远程库
tip:一般是外面团队的开发人员fork本团队项目,然后进行开发,之后外面团队发起pull request,然后本团队进行审核,如无问题本团队进行merge(合并)到团队自己的远程库,整个流程就是本团队跟外面团队的协同开发流程,Linux的团队开发成员即为这种工作方式。