什么是git

可以理解成为一个帮助多人协同开发程序的一个工具,是github和码云这些网站的基础功能。

为什么使用github

 在进行多人协作开发一个程序的时候,如何能够将各自的文件进行保存和上传到一个总的保存地址?如何对程序的版本进行控制?如何能够在公司或者家中电脑对同一个程序进行修改而不是拷到U盘带着到处跑?
 这些就是使用github的目的。我的目的就是对自己写的程序能够进行一个版本的控制,然后就是希望能够在寝室和工作室的电脑上同时对程序的编写。
 当然作为新手,github还有许多比较厉害的功能我还不了解,各位大佬可以留言进行讨论。

选择码云还是github

  1. github的私密代码托管是收费的,所以如果是私密的项目,不想花钱的话就放到码云
  2. 码云因为是国内的,所以网速要比github快很多
  3. github上大神云集,所以想要找一些项目的话还是去github
  4. github相比于码云有许多功能比较实用
     因此我建议两个都可以使用,比较大型的,需要私密空间的,就在码云,在寻找可用的程序的时候,就去github。

入门使用教程

1. 创建github repository(仓库)

1-1 登录github

github的官方网址:https://github.com ,如果没有账号,注册一个。
有账号之后点击Sign in进入登录界面,输入账号和密码登入github。

1-2 创建repository(仓库)

来看怎么创建仓库,登录后可以看到有repository选项卡

切换到repository选项卡,可以看到很醒目的new按钮。不用犹豫,点击它,开始创建自己的粮仓了。

下面是创建仓库信息,只有名字是必填项,现在我创建了一个仓库叫:beautifulDay

创建成功后,可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。

    git init //把这个目录变成Git可以管理的仓库git add README.md //文件添加到仓库git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了 git commit -m "first commit" //把文件提交到仓库git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库git push -u origin master //把本地库的所有内容推送到远程库上

二、安装git客户端

Git是目前世界上最先进的分布式版本控制系统,git与svn的五个基本区别。它有以下特点:

分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;

保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上;

Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;

Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(作者, 日期, GPG等);

Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中, Git可以在同一个目录中切换不同的分支;

分支即时性 : 创建和切换分支几乎是同时进行的, 用户可以上传一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上传到GitHub中去;

分支灵活性 : 用户可以随时 创建 合并 删除分支, 多人实现不同的功能, 可以创建多个分支进行开发, 之后进行分支合并, 这种方式使开发变得快速, 简单, 安全。

2-1 下载git客户端

官方下载地址:http://git-scm.com/download/ 根据你自己的系统 下载对应版本,没想到它知道我是Windows ^_^

选择安装路径,千万别选带中文的路径,有时候会引起不必要的误会。

选择安装组件,按默认的来就好了。
1. 图标组件(Addition icons) : 选择是否创建快速启动栏图标 或者 是否创建桌面快捷方式;
2. 桌面浏览(Windows Explorer integration) : 浏览源码的方法, 单独的上下文浏览 只使用bash 或者 只用Git GUI工具; 高级的上下文浏览方法 使用git-cheetah plugin插件;
3. 关联配置文件(Associate .git*) : 是否关联git配置文件, 该配置文件主要显示文本编辑器的样式;
4. 关联shell脚本文件(Associate .sh) : 是否关联Bash命令行执行的脚本文件;
5. 使用TrueType编码 : 在命令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码;

设置开始菜单中快捷方式的目录名称,默认就好,下一步吧

设置环境变量 : 选择使用什么样的命令行工具, 一般情况下我们默认使用Git Bash即可, 默认选择;
1. Git自带 : 使用Git自带的Git Bash命令行工具;
2. 系统自带CMD : 使用Windows系统的命令行工具;
3. 二者都有 : 上面二者同时配置, 但是注意, 这样会将windows中的find.exe 和 sort.exe工具覆盖, 如果不懂这些尽量不要选择;

选择换行格式 ,依然是默认就好。

1. 检查出windows格式转换为unix格式 : 将windows格式的换行转为unix格式的换行在进行提交;
2. 检查出原来格式转为unix格式 : 不管什么格式的, 一律转为unix格式的换行在进行提交;
3. 不进行格式转换 : 不进行转换, 检查出什么, 就提交什么;


选择终端模拟器,依然默认就好

1. 使用MinTTY,就是在Windows开了一个简单模拟Linux命令环境的窗口Git Bash2. 使用windows的系统的命令行程序cmd.exe


选择默认就好,不用文件系统缓存

2-3 绑定用户

打开git-bash.exe,在桌面快捷方式/开始菜单/安装目录中

因为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 “6215048wjl@163.com”来生成。

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” //把文件提交到仓库
  git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库
  git push -u origin master //把本地库的所有内容推送到远程库上
首先,进入到beautifulDay项目目录,还记得创建仓库成功后的那个页面吧,指令都在呢。

然后执行指令:git init

初始化成功后你会发现项目里多了一个隐藏文件夹.git

这个目录是Git用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

接着,将所有文件添加到仓库

执行指令:git add .

然后,把文件提交到仓库,双引号内是提交注释。

执行指令:git commit -m “提交文件”

如此本地仓库建立好了。

4-3 关联github仓库

到github beautifulDay仓库复制仓库地址

然后执行指令:git remote add origin git@github.com: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文件夹出来了。
总结:

  现在通过博客来将github入门梳理了一遍,印象好深刻,应该不会变成零碎了。如果大家想要知道更多的git操作和知识,推荐去看看缪雪峰的git教程,讲得很详细。

使用时可能出现的几个问题

  1. 我在git中上传一个unity项目的时候,一直无法cd进文件夹,只要一进去就报错,目前还不知道原因
  2. 在提交修改的时候出现以下错误
deMacBook-Pro:cheatsheetcup yoo$ git commit -m"modified Cheatsheet.html"
On branch master
Changes not staged for commit:modified:   Python Cheatsheet.htmlUntracked files:.DS_Store.idea/no changes added to commit

这是需要再提交之前加上git add --all
3. 已经再git中添加了origin,想要修改怎么办,即修改源

git commit -m "Change repo." # 先把所有为保存的修改打包为一个commit
git remote remove origin # 删掉原来git源
git remote add origin [YOUR NEW .GIT URL] # 将新源地址写入本地版本库配置文件
git push -u origin master # 提交所有代码
  1. 以上代码部分转自 https://www.cnblogs.com/specter45/p/github.html

码云/github搭建仓库的入门级教程(亲测有效)以及问题解答相关推荐

  1. 码云 + Hexo 搭建个人博客

    文章比较长,需要侧边栏目录的,可以点击我的个人博客地址:http://zwd596257180.gitee.io/blog 如果有什么问题想问的,请在 CSDN 上留言. 准备环境 安装 Node 安 ...

  2. 码云Pages搭建个人静态网站之旅

    码云Pages搭建个人静态网站之旅 1.前言 2.搭建之旅 1.撸起袖子干 2.成果展示 1.前言 码云 Pages 是一个免费的静态网页托管服务,您可以使用 码云 Pages 托管博客.项目官网等静 ...

  3. 怎么用IDEA上传本地项目到码云/Github?

    博主码云地址:https://git.oschina.net/zsyoung01,欢迎关注! 博客原文地址:http://blog.csdn.net/zsyoung/article/details/7 ...

  4. 将本地项目上传到码云(gitee)远程仓库

    前提条件: 1.本地电脑上已经安装了 git客户端,未安装的,具体安装过程可以参考此安装链接:https://blog.csdn.net/ezreal_tao/article/details/8160 ...

  5. JEECG_3.7开发环境搭建与代码生成器入门级教程-张代浩-专题视频课程

    JEECG_3.7开发环境搭建与代码生成器入门级教程-3088人已学习 课程介绍         针对入门级同学,清晰讲解JEECG开发平台本地环境搭建步骤,针对jeecg的代码生成器做专题使用讲解, ...

  6. WebODM win10安装教程(亲测)

    WebODM win10安装教程(亲测) 目录 0.为什么要用WebODM 1.参考链接 2.安装步骤 0.为什么要用WebODM 用于航拍图像生成三维重建.三维建模等,界面更简单(比较命令行方式)! ...

  7. geonode geoserver win10 安装教程(亲测)

    geonode geoserver  win10 安装教程(亲测) 目录 0. geonode简介 1.相关链接 2.安装步骤 3. 遇到的坑 0. geonode简介 GeoNode 是一个地理空间 ...

  8. 最新阿里云短信服务接口类【亲测成功】

    阿里大于 最新的阿里云短信接口,适用于阿里大于搬家以后的情况. 之前一直用阿里大于的短信接口,最近上项目时发现阿里大于悄悄地搬家到了阿里云!阿里云的SDK文件繁多,看得一头雾水!下面代码是最新的可适用 ...

  9. Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目

    上篇请移步到Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 上一篇博文已经对Node.js的安装与配置进行了详细介绍. 另外:文中项目存放的路径及项目名称可根据自身实际情况进行 ...

最新文章

  1. Failed to resolve:aar
  2. 网站服务器处理器计划怎么设置,服务器处理器计划
  3. bzoj4383(拓扑排序)
  4. HTTP权威指南记录 ---- HTTP概述
  5. pycharm常用设置(keymap设置及eclipse常用快捷键总结)
  6. php命名空间更麻烦了,紧急求教PHP命名空间问题,12:10了我还没有吃饭呢,各位帮忙!!...
  7. CSS 元素的绝对定位 position: absolute 和 position: fixed
  8. slam 无人车 融合imu 后手动调整小车位姿,不受里程计影响
  9. 浏览器升级怎么升_测评:iOS 13 升不?新老机型跑分对比!
  10. 专访1药网董事长于刚:若没刘峻岭 就没我后面创业的精彩
  11. Linux系统下存在大量的TIME_WAIT状态的TCP连接的解决方法
  12. Unity 编辑器下控制播放Animator
  13. java学生签到系统代码_java学生考勤签到代码【相关词_ 学生考勤系统java代码】...
  14. 适合新手画PCB线路板的四个软件 2021-10-14
  15. 记录delphi 海康摄像机登陆
  16. 北航计算机学院国家奖学金,2019年经管学院研究生国家奖学金预审结果公示
  17. html回调函数,JS 回调函数
  18. 固态硬盘重装系统后进入老系统找东西
  19. 使用 FireDAC的 TFDConnection, TFDQuery 最初只能显示50条记录,TDateSet.RecordCount总是获得50的解决方法。
  20. python的invalid syntax是什么意思_请问在python 中 出现 invalid syntax 是什么意思 ?

热门文章

  1. 基于sqlite数据库
  2. 华章公司近期重点产品介绍
  3. Realme GT Neo3 ROOT 解锁BL教程
  4. 华天软件牵头科技部项目“产品服务生命周期集成平台研发”PLM取得良好进展
  5. html内部阴影效果图,boxshadow内部阴影
  6. serverTimezone报错解决方法
  7. KMP算法——South Central USA 2006 蓝色牛仔裤
  8. 对时间序列数据(牛仔裤销售数据集)进行LSTM预测(Matlab代码实现)
  9. 关于python变量_Python关于变量
  10. 终于看到Scroll Lock键的用途了