为了督促自己能看完这个网站的学习教程,边看边做了些简要的笔记,记录了常用命令,其实也就是自己打了些简单的命令,好多直接就粘贴过来了,也算是一个学习的证明吧,想按详细的教程,还是要去博主的园子学习啊地址是:
上面的Python教程也是不错,有时间也要学习学习。下面是简单的记录,学习旅程的小开始!

----------------------------lesson 01----------------------------------
git init

git status

git add readme.txt

git commit -m "add readme"

git diff
git log

git log --pretty=oneline

当前版本HEAD,上一个版本HEAD^,上上一个HEAD^^,上一百个HEAD~100

回到上一个版本

git reset --hard HEAD^

会丢失这个版本以后的版本,再想回去只能用--hard后面跟上id号码了,只要当前终端未关闭只需要给出前几位就可,git会自己去寻找,但要确保给出的这个能唯一确定想要恢复的那个版本。

不过忘了id也没关系,Python友好的给了后悔药,使用命令可以查看所有提交过的每次操作然后找到版本id,我的给出了前7位

git reflog

git reset --hard commt_id

--------------------------------lesson 02---------------------------

为什么有两步操作?add 和 commit干了什么?

   git的storage暂存区的作用
Git管理的是修改而不是文件

git commit只会提交你刚add过的文件,没add的那些修改不会提交,所以只要工作区修改了就别忘了add,记住真正提交到版本库里需要两步操作。使用如下命令可以查看版本库里和工作区里的文件的区别:

git diff HEAD -- readme.txt

如果反悔了想撤销修改,得看你在哪步犯的糊涂想反悔

1.修改了文件没有add到暂存区:git checkout -- readme.txt
2.修改了文件add到暂存区但还没有commit:先用git reset HEAD file退到原来版本,在用git checkout -- readme.txt撤销更改,暂存区和工作区都干净了

3.修改了文件add了也commit到版本库了但没有提交给远程服务器:利用版本恢复git reset --hard commt_id

4.修改了文件add了也commit到版本库了并提交给远程服务器:目前我帮不了你了啊

删除操作:

git rm test.txt

git commit -m "delete test.txt"
如果误删除想撤销,用git checkout -- test.txt
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

--------------------------------------lesson 03--------------------------

远程仓库
用Github这个神奇的网站,它提供代码托管服务,可以得到免费的远程仓库。首先要有SSH key。

创建SSH Key

ssh-keygen -t rsa -C "youremail@example.com"
在用户主目录下/home/bmr/会生成.ssh的文件夹(隐藏的),里面会有两个文件id_rsa和id_rsa.pub。前者是私钥不可泄漏出去,后者是公钥,可以告诉别人,也就是用来添加到Github的SSH Key里面的。这样可以免费托管代码,但是别人都能看得见你的代码。要想保护起来,交钱或者自己建立一个Git服务器,以后会讲的~~

1). 创建一个新的Git仓库:

登录后右上角Create a new repo,点击

2). 创建后的提示:

在本地用命令行创建repo:create a new repository on the command line

在本地的目录下执行命令:
将已有的本地repo添加到仓库:$ git remote add origin https://github.com/maoranbian/learngit.git

或者$ git remote add origin git@github.com:michaelliao/learngit.git

注意两种都可,只是用到的协议不同,前者是https协议,后者是ssh是默认的协议,速度更快。
然后把当前分支推送到远程 $ git push -u origin master
-u的作用,第一次推送时要加此命令。
以后修改了本地文件,可以直接用git push origin master 从远程仓库克隆
在GitHub已有一个建立好的远程库gitskills.git,在本地选定好的文件夹里用命令克隆到本地库
git clone git@github.com:maoranbian/gitskills.git
-------------lesson 04-----------------
分支管理 Git用HEAD指针指向当前分支的最新提交
git branch 查看所有分支,Git会列出所有分支并在当前分支开头标记一个*
git checkout -b dev 创建分支dev并将HEAD指向该分支,相当于合并了下面的两步操作
git branch dev
git checkout dev
git checkout master 将当前分支切换到master
git merge dev 将分支dev的内容合并到当前分支matster,采用Fast-Forward快进模式
git branch -d dev 合并结束后删除dev分支
默认的主分支就是master
练习step:
    1.建立并切换到一个dev分支
    2.在dev分支修改readme并add和commit
    3.切换到master分支并merge dev
    4.删除dev分支
解决冲突:
冲突产生的step:
1.创建并切换到分支feature1
   2.修改readme并add和commit 内容:and simple
    3.切换到分支master并修改readme 内容:& simple
    4.直接merge时产生冲突,不能用Fast-Forward的方式进行merge,可以使用git status 查看产生冲突的文件
打开冲突文件可以看到git为我们列出的各个分支下不同的修改
    5.在主分支上手动修改后提交
可以使用带参数的log命令查看合并情况 git log --graph --pretty=oneline --abbrev-commit
    6.删除feature1分支,ok!
可以用git log --graph 查看分支合并情况
合并方式:
默认的Fst-Forward方式合并删除后会丢掉分支信息,使用--no-ff参数合并可以保留合并过的分支信息。
git merge --no-ff -m "merge with --no-ff" dev 表示将dev分支合并到当前分支并禁用Fast-Forward模式 分支策略:
master分支因该是稳定的,仅仅用来发布新版本,不在上面干活
dev分支是干活用的,不稳定的,发布新版本时把它merge到master上
每个程序员在自己的分支上干活,写好了merge到dev上!
----------lesson 05---------------
Bug分支:
当前分支dev上的工作还没完成,也不能立即提交,但还要去修改个bug?储存当前工作现场的status功能
$ git stash   保存工作现场了
现在可以修理bug了,在那个分支上修复就在那个分支上branch创建一个临时分支。
比如在master分支上修改就在它上面创建一个临时分支issue-101
git checkout master  切换到master分支
git checkout -b issue-101  创建一个临时分支issue-101
.....在issue-101分支上修复bug并提交...
git checkout master  切换到master分支上去
git merge --no-ff -m "merge bug fix 101" issue-101  以保留分支记录的形式完成合并
git branch -d issue-101   删除该分支
好了,现在可以回去干活了
git checkout dev
git status  查看当前工作区是否干净
git stash list 查看储藏的工作区信息
恢复工作区的方法有两个:
1.git stash apply 用来恢复
  git stash drop 用来删除stash的储藏信息
2.git stash pop  恢复的同时把stash的信息也删除了
上两个用任何一个删除后,用git stash list 查看已经没有stash的信息了
注:可以多次stash,恢复的时候用git stash list查看,恢复到某个就用它对应的list 中的id信息
git stash apply stash@{0} Feature分支:
接到通知,产品经理又要加功能了,可不能为了这个新特性干扰了原来已经好用的分支。
所以没添加一个新功能最好新建一个feature分支并在上面实验,成功后合并再删除该分支。
比如当前在dev分支上
git checkout -b feature-vulan  为新功能vulan的开发新建一个分支
开发完毕后提交修改
git add vulan.py
git commit -m "add feature vulan"
git checkout dev 切回到dev分支
如果老板说做的不错合并吧,那就合并分支然后删除feature分支,但他也许会说,这个功能不好,又不想要了,
那也得销毁
git branch -d feature-vulan
不过,不让轻易删,会提示出错信息,还未合并,删除了无法恢复,但可以用下面命令强制删除,只需要将-d改为-D
git branch -D feature-vulan --------------lesson 06---------
多人协作:
你总得学会团队合作
当从远程仓库克隆时,Git自动把本地master和远程的master对应起来了,默认远程仓库的名字是orign。
git remote 查看远程仓库信息
git remote -v 查看远程仓库详细信息,有抓取和推送两种,有两种权限的才能全部看到
 
推送分支:
将本地分支提交到远程库
git push origin master  推送本地的master到远程
git push origin dev  推送本地的dev到远程
一般master和dev分支都需要推送到远程,bug和feature分支视情况而定
抓取分支:
多人协作时,每个人都需要向master和dev推送各自的修改
clone只会将远程的master主分支复制并关联到本地,得到远程其他分支?
git checkout -b dev origin/dev  获取远程的dev到本地,注意没有关联,Git只对master默认关联
现在可以在本地修改并提交了,然后时不时的push到远程
git push origin dev
不过要是还有人也push到了远端dev,可能有修改上的冲突,push可能失败,按Git提示先将最新的提交抓下来,在本地
解决冲突后再提交
git pull
git pull <remote> <branch> 都失败"no track information"是因为还没有和远程的该分支建立链接自然无法从分支抓取
git branch --set-upstream dev origin/dev  建立本地dev和远程dev的链接,然后抓取
git pull
然后在本地解决冲突,手动解决的方法跟以前一样,然后在本地提交后push到远程,仍使用如下命令:
git push origin dev
多人协作的步骤:

1.先试图push自己的修改到远程

2.push失败说明远程的比本地的新,用pull抓取到本地尝试合并

3.合并失败说明有冲突,到本地解决冲突后先在本地提交

4. 合并成功或解决了冲突后push到远端

------------------lesson 07-----------

发布么某个版本时,打个标签

git checkout master 先切换到药打标签的分支上
git tag v0.1  给这个分支的当前提交打标签

git tag v0.1 commit_id  给id为commit_id的某个历史版本创建标签

git tag  查看所有标签,标签按字母顺序列出

git show v1.0 列出某个标签的信息
git tag -a tag_name -m "tag_info"  创建有说明信息的标签

用-s 还可以创建一个带pgp签名的标签,暂不介绍了

git tag -d v0.1  删除标签

以上都是在本地操作的,也可推送到远程

git push origin v0.1  将一个标签推送到远程

git push origin --tags 一次将所有标签推送到远程

删除远程上的标签药分两步:

git tad -d v0.1 先删除本地标签

git push origin :refs/tags/v0.1  然后用此命令从远程删除,可以从GitHub上验证是否成功删除

-------------lesson 08--------

使用GitHub

可以用自己的帐号Fork任意开源仓库到个人的GitHub上。

自己拥有自己仓库的读写权限

如果够牛的话,可以推送自己的代码到开源库上,不过人家是否接收你的pull reguest就不一定了

1.访问开源项目的主页,将开源仓库fork到自己的GitHub,比如有名的https://github.com/twbs/bootstrap

2.从自己的帐号下克隆到本地$ git@github.com:maoranbian/bootstrap.git
3.可以自己干活了,然后把自己的结果推送到自己的GitHub仓库

4.如果想试试运气,那就把自己的成果bug或是新功能pull request吧
aaarticlea/png;base64,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" alt="" data-media-type="image" />
自定义Git:
1. 让Git显示颜色:

git config --global color.ui true

2. 让Git忽略某些文件,保存在本地,不提交Git也不会出现提示:
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。配置文件的写法参照https://github.com/github/gitignore
 

最后,这个配置文件本身也是要加入到Git版本库中的。

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
3.  为命令配置别名:
一行命令就可以,比如要让git st 表git status,可以用如下命令设置:
$ gti config --global alias.st status
习惯性的简写比如co表示checkout,ci表示commit,br表示branch
命令中饿global表示是全局参数,表示对这台电脑的所有Git仓库都适用。
还可以对复杂点的命令起别名,比如撤销暂存区修改的reset HEAD命令可以用设置别名unstage,方法如下:
$git config --global alias.unstage "reset HEAD"
配置一个git last让它显示最后一次的信息提交
$git congig --global alias.last "log -l"
有机会你可以试试下面的配置是被哪位牛人配置成什么样子了?
 

$git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

 
4. 什么?你想删除别名?好吧,带你去找配置文件
在配置别名时如果不加--global就只对当前仓库起作用,每个仓库的配置文件都放在.git/config中,别名的设置都在[alias]名下,觉得哪个不顺眼删除它所在的行,别名就不起作用了,当然,也可以直接在这个地方配置别名,那就是仅针对这个仓库的了。
 
5. 搭建自己的Git服务器私用:
不想开源自己的代码的话,就自己在本地搭建吧,保护代码还不用交费
你需要有一台运行Linux系统的电脑,并且有sudo权限,搭建开始:
step1:安装Git
$sudo apt install git
step2: 创建一个用户运行Git服务
$sudo adduser git
step3: 创建证书登陆
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
step4: 初始化Git仓库
在git仓库的目录下执行如下命令创建一个裸仓库sample.git:
$ sudo git init --bare sample.git
裸仓库没有工作区,因为只是为了共享,把owner改为git:
$ sudo chown -R git:git sample.git
step5:禁用shell命令
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash 
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell 
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
step6:使用git clone命令克隆远程仓库
在小伙伴们各自的电脑上运行克隆命令就可以啦:
$ git clone git@server:/srv/sample.git
然后就是推送什么的了
其他的,要方便管理公钥,用Gitosis;要像SVN那样变态地控制权限,用Gitolite。

友情附赠国外网友制作的Git Cheat Sheet,建议打印出来备用:

Git Cheat Sheet

现在告诉你Git的官方网站:http://git-scm.com

好了,简单知识告一段落,剩下的就是勤学苦练了

Git--廖雪峰的博客的学习笔记的更多相关文章

  1. javascript - 浏览TOM大叔博客的学习笔记

    part1 ---------------------------------------------------------------------------------------------- ...

  2. js便签笔记(12)——浏览TOM大叔博客的学习笔记 part2

    1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭 ...

  3. hexo博客的学习笔记

    这篇文章主要的作用是作为 .md文件打开,内部的格式为一个初学者对hexo以及markdown语法运用的笔记 1.Hexo的写文格式 最开始为文章的属性部分,以三横杠-开始,-结束.里面记录了文章的标 ...

  4. 廖雪峰老师博客学习《通过生成器generator生成列表式杨辉三角》

    说明:这是我接触生成器概念后,自己对它的理解,可能比较表面,没深入理解,也可能有错误.后续校正错误认知,将有关generator作为一个tag了! 希望以后能活用. 先贴出自己写的triangles( ...

  5. 我的第一篇博客----LCS学习笔记

    LCS引论 在这篇博文中,博主要给大家讲一个算法----最长公共子序列(LCS)算法.我最初接触这个算法是在高中学信息学竞赛的时候.那时候花了好长时间理解这个算法.老师经常说,这种算法是母算法,即从这 ...

  6. js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1

    1. 前言 这两天看了一下TOM大叔的<深入理解js系列>中的基础部分,根据自己的实际情况,做了读书笔记,记录了部分容易绊脚的问题.写篇文章,供大家分享. 2. 关于HTMLCollect ...

  7. hexo在git上搭建个人博客

    公司实习第一天接到的任务是:搭建一个基于Nodejs的开源项目的开发环境,接到任务时以为不是很困难,后来才知道该项目已于去年被废弃,搭配环境的时候遇到了不少问题,折腾了两天还是没有最终完成... 不过 ...

  8. 使用Coding.net+Hexo+node.js+git来搭建个人博客

    使用Coding.net来搭建基于Hexo的博客 一.准备工作 什么是Coding.net Coding可以说,就是国产的Github,但是,有一个功能使它似乎超越了GitHub-那就是 Web ID ...

  9. Git+Hexo搭建个人博客详细过程

    通过Git+Hexo搭建的个人博客地址:https://liangh.top/ 1.安装Node.js.配置好Node.js环境.安装Git和配置好Git环境,打开cmd命令行,成功界面如下 2.安装 ...

随机推荐

  1. mit java open course assignment #2

    package come; public class Marothon { public static void FirstName(String[] args1,int[] args2){ int ...

  2. linux中ctrl+z、ctrl+d和ctrl+c的区别

    ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c是强制中断程序的执行,而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用f ...

  3. MySQL必知必会 学习笔记(一)

    第一章  了解SQL 模式:   关于数据库和表的布局以及特性的信息.[描述表可以存储什么样的数据,数据如何分解,各部分信息如何命名等等,可以用来描述数据库中特定的表以及整个数据库(和其中表的关系)] ...

  4. WinForm 窗体与窗体相互嵌套

    只要将要被潜逃的的窗体的TopLeve设置为Flase即可像普通的控件一样,被添加到另外一个窗体中,TopLeve:是否为顶级窗口,下面来看代码: public partial class TTFor ...

  5. java实现xml文件增删改查

    java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...

  6. 排序算法 -- 数据结构与算法的javascript描述 第12章

    排序是常见的功能,给定一组数据,对其进行排序. 在此之前,我们需要准备个基础工作--自动生成数组,并可以对该组数据做任何处理. /** * 测试类 ,数组 * @param numElements * ...

  7. 修改SharePoint平台登录者显示名称

    protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //提升权限,拿系统服务帐号来执行此段代码 ...

  8. 通过OCI 处理 Oracle 10g 中处理Clob大字段写入

    Oracle数据库中, 通过存储过程写入Clob字段 , 当数据大于4k时, 报错 ORA-01460: 转换请求无法实施或不合理 经过排查, 数据Bind方式不对, 不能采用字符串的Bind方式 原 ...

  9. CTreeCtrl点击获得选中项

    相应TVN_SELCHANGED可以得到选中的项,在相应函数内如下: LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(p ...

  10. Python进阶之面向对象编程概述

    Python面向对象编程(一) .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB& ...