一、创建github repository(仓库)
1-1 登录github
1-2 创建repository(仓库)
如果没在这个页面也没关系,点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后也能看到repository
切换到repository选项卡,可以看到很醒目的new按钮。不用犹豫,点击它,开始创建自己的粮仓了。
下面是创建仓库信息,只有名字是必填项,现在我创建了一个仓库叫:spider
创建成功后,可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了
现在最新创建的连接是这个:注意一下就行
二、安装git客户端
首先要安装git(下载地址https://www.git-scm.com/download/)
安装软件一步一步默认就行(安装路径可改改)
选择默认就好,不用文件系统缓存
新建一个文件夹(例如spider,用来存放你所有的项目),在spider文件夹下git bash here(可以直接在spider文件夹下右键,如下图所示)
绑定用户:
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱
ps:git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
三、为Github账户设置SSH key
众所周知ssh key是加密传输。
加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。
其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。
如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行
3-1 生成ssh key
首先检查是否已生成密钥 cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥
也可以打开我的电脑C:\Users\specter\.ssh 里面找到
如果没有生成,那么通过$ ssh-keygen -t rsa -C “[email protected]”来生成。
1)是路径确认,直接按回车存默认路径即可
2)直接回车键,这里我们不使用密码进行登录, 用密码太麻烦;
3)直接回车键
生成成功后,去对应目录C:\Users\specter\.ssh里(specter为电脑用户名,每个人不同)用记事本打开id_rsa.pub,得到ssh key公钥
3-2 为github账号配置ssh key
切换到github,展开个人头像的小三角,点击settings
然后打开SSH keys菜单, 点击Add SSH key新增密钥,填上标题,跟仓库保持一致吧,好区分。
接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧。
如此,github账号的SSH keys配置完成。
四、上传本地项目到github
4-1 创建一个本地项目
我这创建了几个空文件夹和一个文件及一个项目配置文件,好多前端项目都这样搭架构,我也追随潮流哈。
4-2 建立本地仓库
再来复习一下创建新仓库的指令:
git init //把这个目录变成Git可以管理的仓库
git add README.md //指定文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库 -m 后是描述,可以随便写,最好有意义
git remote add origin [email protected]:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
注意要了解因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
首先,进入到beautifulDay项目目录,还记得创建仓库成功后的那个页面吧,指令都在呢。
然后执行指令:git init
初始化成功后你会发现项目里多了一个隐藏文件夹.git
这个目录是Git用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
接着,将所有文件添加到仓库
执行指令:git add .
然后,把文件提交到仓库,双引号内是提交注释。
执行指令:git commit -m "提交文件"
如此本地仓库建立好了。
4-3 关联github仓库
到github beautifulDay仓库复制仓库地址
然后执行指令:git remote add origin [email protected]:wangjiax9/beautifulDay.git
4-4 上传本地代码
执行指令:git push -u origin master
1)敲一个:yes, 然后回车
到此,本地代码已经推送到github仓库了,我们现在去githubt仓库看看。
咦!奇怪了,我的目录呢?这个坑突然冒出来是不是印象很深刻呢~
注意咯:git是不能管理空的文件夹的,文件夹里必须有文件才能add
好,我们来试一下,我在examples里新建了一个test1.html文件
执行指令添加文件->提交文件->推送文件
git add . (千万别忘了点啊)
git commit -m "提交test1.html"
git push -u origin master
然后刷新一个github,你会看到,examples文件夹出来了。
打开examples文件夹,test1.html也在里面。
五、上传、下载项目
github上,找到刚创建的仓库abc
在git上操作
git clone "复制的网址"
这时候在workspace文件夹里面就有了abc文件夹
进入abc文件夹,可以在git里面输入 cd abc,也可以直接打开abc文件夹,右键git bash here
然后将你的项目放在abc文件夹下面就行了
下面上传到github上面去
git status 可以查看你修改了哪些文件(下面红色标出来的)
git add .
git commit -m "这里写你本次更新的备注,比如更新了什么功能或什么文件等"
git push
上图所示,有master ->master的时候,就上传成功了
在git push的时候,可能要求你输入你的用户名和密码(如下图所示)
当你上传成功了,就可以去github上面看一下,你新建的文件都上传上去了,如下图所示
每次你修改了你的项目(abc文件里面的东西修改了,这里的修改包括修改代码、添加文件、删除文件),都需要执行这几步命令(如下所示),在github上面更新
git add .
git commit -m "备注"
git push
上面的git add . 一定不要忘记有个点
git add . 和 git commit -m "备注" , 可以合并成为git commit -a -m "备注"
另外还有一个常用的git命令
git pull 更新本地的代码(多人合作管理一个仓库的时候需要用到,别人push了代码,那你就需要pull一下,把别人写的代码更新到本地来)
注意:
如果出现上传不成功,可能是因为你远程仓库已经存在文件,和你本地仓库文件不一致,或者你本地仓库的文件不是最新的,这个时候,你需要执行下面这行命令:
$ git pull origin master
将远程仓库的文件重新下载到本地仓库,然后再次执行
$ git push origin master
下面会介绍怎么给一个项目添加其他人来一起管理仓库
这里附一张git命令图
六、添加其他人一起管理abc仓库
下一步
下一步
下面这张图是合作者打开链接后的图
对方同意了之后,下图所示
七、删除仓库
这里演示删除abc仓库
就可以看到下图所示
往下滚动页面,找到下图所示
下一步
八、删除远程仓库不想要的文件
ps:我们在上传项目后如果上传了你不想要的文件怎么办?很操蛋的在github上我们是不能直接删除仓库的文件,我们只能通过终端命令来删除我们不想要的文件或者目录
Git 如何删除远程服务器文件同时保留本地文件
在上传工程到git上时,有时候会把本地的一些eclipse配置文件传到服务器上,这时你先删除本地,再同步服务器,显然是不合理的。git提供了一个好的解决方法,可以直接删除服务器文件,同时不影响本地文件,命令如下
1.删除服务器文件,本地保留
此时github上已经不存在了
2.删除远程useless 文件夹,本地保留
一定要注意,删除文件夹要使用-r 参数
git rm --cached -r useless git commit -m "remove directory from remote repository" git push
总结:
现在通过博客来将github入门梳理了一遍,印象好深刻,应该不会变成零碎了。如果大家想要知道更多的git操作和知识,推荐去看看 廖雪峰的git教程,讲得很详细。
本文总共引用了两位大神的文章:
http://www.cnblogs.com/specter45/p/github.html
https://blog.csdn.net/qq_33210042/article/details/79712992