本文是关于GitHub的使用方法介绍和防坑指南:
1、申请一个GitHub账号 https://github.com/join
2、拥有一个GitHub账号,登陆之后就可以新建仓库了。那么怎么新建一个仓库:
点击右上角,new repository, 填写仓库名,并填写描述(对仓库名的一些补充),选择public或private(在校大学生可以免费申请建立私人仓库,在我的另一篇文章有详细步骤),点击create repository,这样就完成新建一个仓库的步骤。
3、在本地新建仓库,关联GitHub上的仓库
(1)下载并安装Git https://git-scm.com/downloads
(2)通过Git关联本机与GitHub:
a、在GitHub上的setting里的setting-->SSH and GPG keys-->右上角new ,发现这里需要填title(本机的描述)和SSH keys。那么如何新建一个SSH keys:
b、退出发现在add下有一行小字,选中generating SSH key点击,并点开Generating a new SSH key,按照所示步骤,关联本机与GitHub
c、这时会在c:/Users/you/.ssh下自动生成一个.pub文件,即为SSH key,打开并复制到add SSH keys里。title随意,是本机的一个名字。
关联Git与本机也可采取以下步骤:
a、右击点开Git Gui Here;
b、点击help,选择Show SSH Key,即为SSH Key,粘贴到GitHub即可;
c、注意:SSH Key内容最后面为关联邮箱,需要修改为自己要关联的邮箱(如果在设置Git的时候已设置邮箱, 则无需再修改,看个人情况。如上方法同样需要注意)。
4、现在就可以上传文件了。进入要上传的文件夹下(与GitHub上的仓库名相同),右击鼠标,打开Git Bash Here,下面开始在控制台操作Git:
github上新建的同名仓库生成README.md文件时,需要先git pull origin master到本地,才能push成功!
git init /在本地Initialized empty Git repository
git remote add origin https://github.com/username/仓库名.git /连接GitHub仓库,origin是GitHub仓库的一个别名
git add . 或者git add 文件名 /将文件缓存,前者表示所有文件,后者表示某文件
git status /查看上传状态
git commit -m "文件描述"
git pull origin master /先将远程代码pull到本地
git push -u origin master /再将本地push到远程
另外,也可以直接从github上git clone 下对应仓库。cd 仓库名,git add . ,git commit -m "文件描述",git push -u origin master,来上传文件。
5、删除github上的文件或文件夹:
git clone 仓库路径
git rm 文件夹 或者 git rm -r 文件
git commit -m "描述"
git push origin 分支
之后看情况再续更!!!
来续更啦。。。
6、团队开发时,需要在本地新建自己的分支,开发完后和master分支合并。合并代码原理流程如下:
a、提交到本地仓库
git add .
git commit -m ‘dev'
git push -u origin dev
b、切换到master分支
git checkout master
c、把远程master上的代码pull下来
git pull origin master
d、把dev分支的代码合并到master上
git merge dev
e、查看状态
git status
7、(敲黑板)今天工作的时候,把A分支下的工作未commit,然后切换到了B分支,然后A的工作就被带到了B,哭死。。。因为两个分支有冲突,不合并也切换不到别的分支,只能硬着头皮合并(哭==两个分支时隔太久远了)。。。合并完后,提交B分支,再切换回A分支,把B分支的代码合并过来继续开发(又要解决一遍冲突),再次哭晕。。。。而且,这样特别不好的一点是,版本控制比较乱,因为A的工作提交到了B上。。。。。那么,那么,重点来了。怎么避免切换分支时的不如意呢。。
方法1:最好就是先 add commit,用 git status 检查一下工作区和暂存区,然后再切换分支;
方法2:如果是未完成工作,不便提交,那么可以使用git stash隐藏当前工作现场,可以用 git status 检查一下工作区是干净的,这个时候就可以切换到别的分支啦。同时,可以用 git stash list 查看隐藏起来的工作现场。。。
再切换回来的时候呢需要恢复现场,可以用 git stash apply恢复,但是恢复后,stash 内容并不删除,需要用 git stash drop来删除;也可以用 git stash pop,恢复的同时把stash内容也删了,这时候用 git stash list就看不到任何 stash 内容了。。。可以多次 stash ,恢复的时候,先用 git stash list查看,然后用 git stash apply stash@{0}或者 git stash pop stash@{0}恢复指定的stash
8、(又来敲黑板啦)相信大家都使用过 merge 和 rebase ,两者区别网上有详解,这里就不多说了。想说一下,自己前两天在 rebase 的时候,进入了rebasing状态,显然这是rebase失败了。然后就进了这个坑,那么要出这个坑,也就得放弃当前rebase操作,执行 git rebase --abort 即可。。。如果提示如下不成功,则直接删除项目下的 .git/rebase-apply 文件。
但是如果不放弃当前的rebase操作,需要先解决冲突,再add冲突文件,之后git rebase --continue。。。
后续续更!!!