Github可以说是用来管理代码项目的一大利器啦

之前装好项目之后,就开始了Github的学习,找来找去,发现已经有人写了很详细易懂的教程。于是我按照教程过了一下,将教程转载在这里,并补充一些细节。

目录:

1. Git 基本命令

2. 在本地创建仓库与链

3. 界面优化(oh my zsh)

4. 实现远端项目交互

1.基本命令

怎么判断你 Git 有没有安装成功?请在命令行里输入 git ,如果出现以下提示证明你已经安装成功了。

Git 所有的操作命令开头都要以 git 开头,上面列举了最常用的一些 Git 命令,紧接着会有一句英文解释这个命令的意义,都不是很难的单词,不妨试着看一下,不过没有实际操作你仍然不好理解,下面我们来以一个实际的操作来介绍下一些常用命令的含义。

Git 具体命令

第一步,我们先新建一个文件夹,在文件夹里新建一个文件(我是用 Linux 命令去新建的,Windows用户可以自己手动新建)

mkdir test (创建文件夹test)cd test (切换到test目录)touch a.md (新建a.md文件)

这里提醒下:在进行任何 Git 操作之前,都要先切换到 Git 仓库目录,也就是先要先切换到项目的文件夹目录下。

这个时候我们先随便操作一个命令,比如 git status ,可以看到如下提示(别纠结颜色之类的,配置与主题不一样而已):

意思就是当前目录还不是一个 Git 仓库。

git init

这个时候用到了第一个命令,代表初始化 git 仓库,输入 git init 之后会提示:

可以看到初始化成了,至此 test 目录已经是一个 git 仓库了。

git status

紧接着我们输入 git status 命令,会有如下提示:

默认就直接在 master 分支,关于分支的概念后面会提,这时最主要的是提示 a.md 文件 Untracked files ,就是说 a.md 这个文件还没有被跟踪,还没有提交在 git 仓库里呢,而且提示你可以使用 git add 去操作你想要提交的文件。

git status 这个命令顾名思义就是查看状态,这个命令可以算是使用最频繁的一个命令了,建议大家没事就输入下这个命令,来查看你当前 git 仓库的一些状态。

git add

上面提示 a.md 文件还没有提交到 git 仓库里,这个时候我们可以随便编辑下 a.md 文件,然后输入 git add a.md ,然后再输入 git status :

此时提示以下文件 Changes to be committed , 意思就是 a.md 文件等待被提交,当然你可以使用 git rm –cached 这个命令去移除这个缓存。

git commit

接着我们输入 git commit -m ‘first commit’ ,这个命令什么意思呢? commit 是提交的意思,-m 代表是提交信息,执行了以上命令代表我们已经正式进行了第一次提交。

这个时候再输入 git status ,会提示 nothing to commit。

git log

这个时候我们输入 git log 命令,会看到如下:

git log 命令可以查看所有产生的 commit 记录,所以可以看到已经产生了一条 commit 记录,而提交时候的附带信息叫 ‘first commit’ 。

git add & git commit

看到这里估计很多人会有疑问,我想要提交直接进行 commit 不就行了么,为什么先要再 add 一次呢?首先 git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交,当然也有办法把这两步合并成一步,不过后面再介绍,建议新手先按部就班的一步步来。

git branch

branch 即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A, B俩人都在做同一个项目,但是不同的模块,这个时候A新建了一个分支叫a, B新建了一个分支叫b,这样A、B做的所有代码改动都各自在各自的分支,互不影响,等到俩人都把各自的模块都做完了,最后再统一把分支合并起来。

执行 git init 初始化git仓库之后会默认生成一个主分支 master ,也是你所在的默认分支,也基本是实际开发正式环境下的分支,一般情况下 master 分支不会轻易直接在上面操作的,你们可以输入 git branch 查看下当前分支情况:

如果我们想在此基础上新建一个分支呢,很简单,执行 git branch a 就新建了一个名字叫 a 的分支,这时候分支 a 跟分支 master 是一模一样的内容,我们再输入 git branch 查看的当前分支情况:

但是可以看到 master 分支前有个 * 号,即虽然新建了一个 a 的分支,但是当前所在的分支还是在 master 上,如果我们想在 a 分支上进行开发,首先要先切换到 a 分支上才行,所以下一步要切换分支

git checkout a

执行这个命令,然后再输入 git branch 查看下分支情况:

可以看到当前我们在的分支已经是a了,这个时候 A 同学就可以尽情的在他新建的a分支去进行代码改动了。

那有人就说了,我要先新建再切换,未免有点麻烦,有没有一步到位的,聪明:

git checkout -b a

这个命令的意思就是新建一个a分支,并且自动切换到a分支。

git merge

A同学在a分支代码写的不亦乐乎,终于他的功能完工了,并且测试也都ok了,准备要上线了,这个时候就需要把他的代码合并到主分支master上来,然后发布。git merge 就是合并分支用到的命令,针对这个情况,需要先做两步,第一步是切换到 master 分支,如果你已经在了就不用切换了,第二步执行 git merge a ,意思就是把a分支的代码合并过来,不出意外,这个时候a分支的代码就顺利合并到 master 分支来了。为什么说不出意外呢?因为这个时候可能会有冲突而合并失败,留个包袱,这个到后面进阶的时候再讲。

git branch -d

有新建分支,那肯定有删除分支,假如这个分支新建错了,或者a分支的代码已经顺利合并到 master 分支来了,那么a分支没用了,需要删除,这个时候执行 git branch -d a 就可以把a分支删除了。

git branch -D

有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码,但是如果你非要删除,那就执行 git branch -D a 就可以强制删除a分支。

git tag

我们在客户端开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。

所以如果想要新建一个标签很简单,比如 git tag v1.0 就代表我在当前代码状态下新建了一个v1.0的标签,输入 git tag 可以查看历史 tag 记录。

可以看到我新建了两个标签 v1.0、v1.1。

想要切换到某个tag怎么办?也很简单,执行 git checkout v1.0 ,这样就顺利的切换到 v1.0 tag的代码状态了。

安装ohmy zsh

http://blog.csdn.net/czg13548930186/article/details/72858289

首先安装zsh

Debian/Ubuntu

apt-get install zsh

设置默认shell为zsh

$ chsh -s $(which zsh)

完成后可以使用下面这条命令检查是否设置成功

echo $SHELL

我们可以在命令行中输入这个命令来查看我们的电脑上是否安装了zsh命令行

zsh --version

如果安装了,这个命令就会输出zsh当前的版本号。确定zsh已经安装后,我们就可以继续安装OhMy Zsh了。

安装OhMy Zsh

wget方式

$ sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

期间会提示要求输入密码,为登录用的ubuntu密码

首先看下安装的路径下有哪些内容,如下

lib提供了核心功能的脚本库

tools提供安装、升级等功能的快捷工具

plugins自带插件的存在放位置

templates自带模板的存在放位置

themes 自带主题文件的存在放位置

custom个性化配置目录,自安装的插件和主题可放这里

ls ~/.oh-my-zsh/themes

查看默认的主题

这么多的主题可以满足你的各种偏好了,我们只需在./zshrc文件中配置需要的主题即可,比如我们想用lambda.zsh-theme这个主题,我们只要这样配置

ZSH_THEME="lambda"

然后保存这个文件文件,再打开一个新的命令行窗口即可看到效果了。那么这么多的主题如何快速找到哪些是我们喜欢的呢,我们还可以这样设置

ZSH_THEME="random"

我们将主题设置为随机,这样在我们每次打开命令行窗口的时候,都会随机在默认主题中选择一个。这样我们如果觉得当前的主题比较喜欢,可以直接使用echo命令输出当前主题的名称

echo $ZSH_THEME

向Github提交项目

http://stormzhang.com/github/2016/06/04/learn-github-from-zero4/

1.生成ssh-key

什么是 SSH呢? 简单点说,SSH是一种网络协议,用于计算机之间的加密登录。目前是每一台Linux电脑的标准配置。而大多数 Git服务器都会选择使用 SSH公钥来进行授权,所以想要在 GitHub提交代码的第一步就是要先添加 SSHkey 配置。

Linux与 Mac都是默认安装了 SSH,而 Windows系统安装了 GitBash 应该也是带了 SSH的。大家可以在终端(win下在GitBash 里)输入 ssh如果出现以下提示证明你本机已经安装SSH,否则请搜索自行安装下。

紧接着输入ssh-keygen-t rsa ,什么意思呢?就是指定rsa算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件id_rsa和 id_rsa.pub,而 id_rsa是密钥,id_rsa.pub就是公钥。这两文件默认分别在如下目录里生成:

Linux/Mac系统 在 ~/.ssh下,win系统在/c/Documentsand Settings/username/.ssh 下,都是隐藏文件,相信你们有办法查看的。

查看隐藏文件:

1.使用命令ls-a 就会显示所有的文件(之前先用cd进入相应的文件夹)

2.可视化操作时,进入文件夹按ctrl+h,会显示所有文件

如果想要一直看到隐藏文件,点击主文件夹一栏的下三角按钮,选择隱藏文件。

有些文件因为权限问题无法编辑,打开终端输入sudo nautilus,会出现超级用户文件夹,就能编辑任何文件(https://jingyan.baidu.com/article/49711c61415945fa441b7c89.html

接下来要做的是把 id_rsa.pub的内容添加到 GitHub上,这样你本地的 id_rsa密钥跟 GitHub上的 id_rsa.pub公钥进行配对,授权成功才可以提交代码。

紧接着输入 ssh-keygen -t rsa ,什么意思呢?就是指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。这两文件默认分别在如下目录里生成:

Linux/Mac 系统 在 ~/.ssh 下,win系统在 /c/Documents and Settings/username/.ssh 下,都是隐藏文件,相信你们有办法查看的。

接下来要做的是把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

3. GitHub 上添加 SSH key

第一步先在 GitHub 上的设置页面,点击最左侧 SSH and GPG keys :

然后点击右上角的 New SSH key 按钮:

需要做的只是在 Key 那栏把 id_rsa.pub 公钥文件里的内容复制粘贴进去就可以了(上述示例为了安全粘贴的公钥是无效的),Title 那栏不需要填写,点击 Add SSH key 按钮就ok了。

这里提醒下,怎么查看 id_rsa.pub 文件的内容?

Linux/Mac 用户执行以下命令:

cd ~/.ssh
cat id_rsa.pub

Windows用户,设置显示隐藏文件,可以使用 EditPlus 或者 Sublime 打开复制就行了。

SSH key 添加成功之后,输入 ssh -T git@github.com 进行测试,如果出现以下提示证明添加成功了。

Github 学习 (整理自http://stormzhang.com/github/2016/06/04/learn-github-from-zero4/ 张哥学Git)相关推荐

  1. 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个

    从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Djang ...

  2. git/github学习笔记

    原文地址为: git/github学习笔记 请移步到:http://www.testclass.net/git/ ----- 我重新对git/github教程进行了编排和整理. 1. git 版本控制 ...

  3. github 学习笔记【一】

    这几天在学习github ,其实学了主要用来管理自己的项目!因为要在家里和公司两头做! 所以就开始学习使用!目前熟练几个命令,其他的一边用一遍学吧!想一举成功应该是不太可能的! 反复记忆才能更好,据说 ...

  4. Git和Github介绍,294页『Git与Github学习使用指南』分享

    1 前言 相信大家写代码的时候,心里肯定想找一个别人写好的,可以直接上手的代码,再做相应的修改和改进.那哪里有这些代码呢? 答案自然是Github了,那GitHub又是啥? GitHub是世界上最大的 ...

  5. github star整理

    1.https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/blob/master/README-cn.md 这是现在已经停止维护的下拉刷 ...

  6. github学习教程

    借助GitHub托管你的项目代码 PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把GitHub用起来,把你的项目代 ...

  7. GitHub学习总结

    花了半天的功夫,终于把github这个东西搞秦楚了,算是入了门,以后再慢慢学习实践,不要想一口吃成个大胖子,先入门,随之时间的向前推进,你是理解和使用熟练度会有很大的提高 的. ======== 为了 ...

  8. Git 经验总结及 Git GitHub 学习指南

    1. 前言 本文主要分为两部分,前一部分是本人学习和工作中使用 Git 的总结经验,后半部分是总结的 Git & GitHub 的学习指南.如果想直接体系学习,可以直接按照指南路线学习.如果你 ...

  9. github学习记录

    github学习记录 引言 1.安装及初始化git 2.新建仓库 3.clone仓库 4.已存在仓库 5.从github上下载部分文件 5.打标签 6.常见问题 7.合并分支 8.commit 格式 ...

最新文章

  1. Android Studio窗口组成
  2. java电台数据解析_Java数据解析---SAX
  3. dll窗体的创建与调用
  4. 解决关于 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it....报错
  5. 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
  6. 一键移植工具_让UI设计畅通无阻 — 信息系统人机界面增强工具(HFE Designer)
  7. 很好用的ISO制作软件
  8. 引入阿里云GA,商米加速IoT产品和解决方案全球化布局
  9. 【小安翻唱】Dreams-黑之契约者 双蛋快乐~顺便来拉票咯!
  10. 在linux系统中如何查看cpu,Linux中如何查看CPU的信息
  11. 第六章 ---- 面向对象(三)
  12. Linux三种修改打开文件数量限制的方法
  13. 去掉Scala的糖衣(4) -- Type Aliase
  14. 图解Kafka中的数据采集和统计机制
  15. 中小企业(OA)办公系统方案 huangai[VA]
  16. centerX: 用中国特色社会主义的方式打开centernet
  17. 机器人与matlab——Robotics Toolbox—02建立机器人模型
  18. 资料:基于MPSOC XCZU15EG-2FFVB1156I 的PCIe FMC 光纤接口处理卡设计资料保存
  19. 监督学习、非监督学习、半监督学习(主动学习)
  20. 语音特征:mfcc、fbank和语谱图概述

热门文章

  1. SAP的统驭科目 - 什么是SAP的统驭科目
  2. protobuf官方文档学习
  3. 五年程序员谈软件工程师做职业规划的重要性
  4. C# CAD二次开发之基本图形
  5. 【Java】SpringBoot后端格式转换:把Word转成PDF再按页转成图片在前端展示(Linux)
  6. 微信小程序页面分享出去后用户无法通过分享页面返回首页bug解决方法
  7. 阿里老兵深度雄文:不懂这些,你的复盘都是白费功夫!
  8. uni-app实现微信相机
  9. html调用头尾html,合并html头尾 - 基础支持 - 用gulp搭建前后分离的开发环�? - KK的小故事...
  10. 怎样把CAD图纸的背景颜色修改成白色?