15.7 GitHub

一、Git常用命令

1. git常用命令:

  • git init //初始化本地git环境
  • git clone XXX//克隆一份代码到本地仓库
  • git pull //把远程库的代码更新到工作台
  • git pull —rebase origin master //强制把远程库的代码更新到当前分支上面
  • git fetch //把远程库的代码更新到本地库
  • git add . //把本地的修改加到stage中
  • git commit -m ‘comments here’ //把stage中的修改提交到本地库
  • git push //把本地库的修改提交到远程库中
  • git branch -r/-a //查看远程分支/全部分支
  • git checkout master/branch //切换到某个分支
  • git checkout -b test //新建test分支
  • git checkout -d test //删除test分支
  • git merge master //假设当前在test分支上面,把master分支上的修改同步到test分支上
  • git merge tool //调用merge工具
  • git stash //把未完成的修改缓存到栈容器中
  • git stash list //查看所有的缓存
  • git stash pop //恢复本地分支到缓存状态
  • git blame someFile //查看某个文件的每一行的修改记录()谁在什么时候修改的)
  • git status //查看当前分支有哪些修改
  • git log //查看当前分支上面的日志信息
  • git diff //查看当前没有add的内容
  • git diff —cache //查看已经add但是没有commit的内容
  • git diff HEAD //上面两个内容的合并
  • git reset —hard HEAD //撤销本地修改
  • echo $HOME //查看git config的HOME路径
  • export $HOME=/c/gitconfig //配置git config的HOME路径

2. 团队协作git操作流程:

  • 克隆一个全新的项目,完成新功能并且提交:
  1. git clone XXX //克隆代码库
  2. git checkout -b test //新建分支
  3. modify some files //完成修改
  4. git add . //把修改加入stage中
  5. git commit -m ‘’ //提交修改到test分支
  6. review代码
  7. git checkout master //切换到master分支
  8. git pull //更新代码
  9. git checkout test //切换到test分支
  10. git meger master //把master分支的代码merge到test分支
  11. git push origin 分支名//把test分支的代码push到远程库
  • 目前正在test分支上面开发某个功能,但是没有完成。突然一个紧急的bug需要处理
  1. git add .
  2. git stash
  3. git checkout bugFixBranch
  4. git pull —rebase origin master
  5. fix the bug
  6. git add .
  7. git commit -m ‘’
  8. git push
  9. git checkout test
  10. git stash pop
  11. continue new feature’s development
  • git工作流

img

二、安装Git客户端

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

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

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

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

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

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

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

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

1. 下载git客户端

官方下载地址:http://git-scm.com/download/ 根据你自己的系统 下载对应版本。

img

2. 安装客户端

下载好之后咋们开始安装吧,欢迎界面,下一步。

img

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

img

选择安装组件,按默认的来就好了。 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编码, 该编码是微软和苹果公司制定的通用编码;

img

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

img

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

img

选择换行格式 ,依然是默认就好。 1)检查出windows格式转换为unix格式 : 将windows格式的换行转为unix格式的换行在进行提交; 2)检查出原来格式转为unix格式 : 不管什么格式的, 一律转为unix格式的换行在进行提交; 3)不进行格式转换 : 不进行转换, 检查出什么, 就提交什么;

img

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

1)使用MinTTY,就是在Windows开了一个简单模拟Linux命令环境的窗口Git Bash

2)使用windows的系统的命令行程序cmd.exe

img

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

img

安装中……

img

终于安装成功咯。

img

3. 绑定用户

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

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱

img

psgit config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

三、创建GitHub仓库

1. 登录github

  1. github的官方网址:https://github.com ,如果没有账号,赶紧注册一个。

  2. 点击Sign in进入登录界面,输入账号和密码登入github。

img

2. 创建repository(仓库)

为啥要叫repository(仓库)?我起初也纳闷,叫代码库不更简单明了么? 但仔细一琢磨,仓库一般都是放粮食的吧,这是把代码当作饱腹之物,多有爱,瞬间觉得这冰冷冷的代码充满了查克拉。

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

img

如果没在这个页面也没关系,点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后也能看到repository

img

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

img

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

img

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

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

四、为GitHub账户设置SSH key

众所周知ssh key是加密传输。

加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字可以用来加密,而另外一个数字可以用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。

其中,公钥就是那个用来加密的数字,这也就是为什么你在本机生成了公钥之后,要上传到github的原因。从github发回来的,用那公钥加密过的数据,可以用你本地的私钥来还原。

如果你的key丢失了,不管是公钥还是私钥,丢失一个都不能用了,解决方法也很简单,重新再生成一次,然后在github.com里再设置一次就行

1. 生成ssh key

首先检查是否已生成密钥 cd ~/.ssh,ls如果有3个文件,则密钥已经生成,id_rsa.pub就是公钥

img

也可以打开我的电脑C:\Users\specter.ssh 里面找到

img

如果没有生成,那么通过$ ssh-keygen -t rsa -C “6215048wjl@163.com”来生成。

1)是路径确认,直接按回车存默认路径即可

2)直接回车键,这里我们不使用密码进行登录, 用密码太麻烦;

3)直接回车键

img

生成成功后,去对应目录C:\Users\specter.ssh里(specter为电脑用户名,每个人不同)用记事本打开id_rsa.pub,得到ssh key公钥

img

2. 为github账号配置ssh key

切换到github,展开个人头像的小三角,点击settings

img

然后打开SSH keys菜单, 点击Add SSH key新增密钥,填上标题,跟仓库保持一致吧,好区分。

接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧。

img

如此,github账号的SSH keys配置完成。

img

五、GitHub上传本地项目

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

六、GitHub下载项目到本地

github的项目可以通过两种地址来clone,通过https或ssh,如:

  1. git clone https://github.com/xmanrui/autoftp

或者

  1. git clone git@github.com:xmanrui/autoftp.git

打赏

微信支付 支付宝支付

License

本作品由Simonhttp://www.uusystem.com)创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 欢迎转载,但任何转载必须保留完整文章,在显要地方显示此声明以及原文链接。如您有任何疑问或者授权方面的协商,请邮件:postmaster@uusystem.com。