一、说明
1.1 背景说明
刚工作的时候我对版控制没什么概念,比如听说MariaDB是MySQL的一个分支还是不明白他们的代码到底是不是一样的。
后来弄公司的svn算是有了一些了解,但对于git到现在都不算太会用,每次传项目到github总是一阵抓狂。写这篇博客的原因也是为了避免自己以后再操作时方便查看。
1.2 关于git和svn
我们总会听到说linus当年对svn的实现模式很不满意所以编写了git,所以git是比svn更合理先进的。
对于大众一致认为的观点,我自己的话总是有两层看法:一方面是如果大多数人都说是对的那一般是对的,另一方面是其实这一大多数人中的大多数人都是一知半解人云亦云。
对于后者,比如对我来说我觉得svn挺好用的,服务端客户端安装使用都很方便,svn比git好在哪了我不知道。当然也可能我连git的高级特性都没用过、技术水平太差,并不具有代表性。
1.3 关于git和github
很多人接解git都是从github开始的,一堆开源的项目又都在github上,导致很多人以为git是github的一个客户端,或者其专属的技术。
其实git分为git客户端和git服务端,github是git服务端的一个包装实现;还有其他的git服务端包装实现,比如gitlab、码云;当然你也完全可以自己在自己机器上安装一个git服务端。
另外gitlab和github的区别是,gitlab除了有网站外,还提供一种git服务端发行版,供用户方便地在自己服务器搭建一个易用的git服务器。
1.4 关于git和服务端操作只有一种场景
日常我们有两种操作需求,一是本地没有代码我们从github上下载项目修改后再传上去,二是本地有写好的项目代码我们要传到github上去。
但我们要明确,不存在通过客户端创建服务端仓库然后把代码传上去这样的操作,所以不论哪种情况,服务端的仓库都是要首先存在的。
我们后边的也先介绍服务端侧操作,再介绍客户端侧操作。
二、github服务端基本操作
2.1 创建仓库
下来就是一些信息的填写,包括仓库名、仓库说明、仓库属性、是否添加README文件、是否添加.gitingnore文件、是否添加开源许可证等等。
填完后点击“Create repository”创建仓库即可。
如果没有选择添加任何文件,那么github默认你是个新手,会展示如下的界面,告诉你如何上传文件到该仓库中。
如果有添加README、许可证等操作,那么github默认你是有经验的github使用者,会直接跳到仓库首页。所以你是一个新手不记得这些命令(的顺序),那么还是建议不要直接添加。
2.2 删除仓库
切换到Setting标签,如果只是想改下项目名称直接rename即可,不需要删除。
如果真确定删除仓库则拉到底部点击“Delete this repository”
最后在弹出的对话框中输入仓库名再次确认删除即可。
三、git客户端基本操作
3.1 git客户端安装
Windows直接下载git bash,双击进行安装,安装目录可以自行修改一下,其他一些选项全都默认即可
下载地址:https://gitforwindows.org/
3.2 ssh公钥配置
3.2.1 本地生成ssh公私钥对
打开git bash,直接使用以下命令生成,如有选择提示直接回车使用默认值即可:
ssh-keygen -t rsa -P ''
可以看到公私钥文件存放位置提示,一般是“C:/Users/电脑用户名/.ssh”目录下。
打开公钥文件,内容类似如下(所有字符在同一行,这里我使用了自动换行):
3.2.2 把ssh公钥导到github
github左上角用户处点击展开,点击Settings
切换到“SSH and GPG keys”,点击“New SSH key”。
在Title处取一个名字,把上边的公钥文件中的所有内容复制粘账到Key处,最后点击“Add SSH key”即可。
3.3 配置提交代码时登记的邮箱和用户
其实这个邮箱和用户只是为了方便回溯代码是谁提交的,并不需要是github的邮箱和用户名,甚至是可以随便写的邮箱和用户名。
git config --global user.email "you@example.com" git config --global user.name "Your Name"
3.4 把项目上传到github
另外由于本地原先没有项目,其实比本地已有项目的情况,在提交时比第二种情况多“git clone”一句少“git init”和“git remote add origin”两句,前面的其他操作都一样,所以就不多介绍了。
3.4.1 准备一个本地项目
我们先在本地准备一个测试项目,这里以test文件夹、其下有一test.txt文件为例
mkdir test cd test echo "这是一个测试文件。" > test.txt
3.4.2 将项目上传
使用创建空项目时提示的那些命令上传即可
git init git add * git commit -m "commit test" git remote add origin https://github.com/PrettyUp/test.git git push -u origin master
如果是git bash没有登录过github,最后的git push时需要输入一次github的用户名密码,输入登录即可。
(这其实我也是不太理解,既然我都配置了公钥信任本台机器了,为什么要在输入一次用户名密码呢。)
3.4.3 上传结果确认
此时再回到github的test仓库,刷新页面查看,test.txt已上传成功。
四、git工作流程说明
git remote add origin
来源:https://www.cnblogs.com/lsdb/p/12123027.html