搜索
bottom↓
回复: 96

分享【史上最浅显易懂的Git教程! --By 廖雪峰】

  [复制链接]

出0入0汤圆

发表于 2014-10-19 23:23:18 | 显示全部楼层 |阅读模式
作者原话:
Git是什么?
Git是⺫目目前世界上最先进的分布式版本控制系统(没有之一一)。
Git有什么特点?简单来说就是:高高端大大气气上档次!

好把,上传pdf。


一晚上绝对可以学会,下面是我摘下来的笔记以防忘记。


初始化git仓库:
git init
自报家门:
git config --global user.name "xxxx"
git config --global user.email "xxxx"
把文件添加到仓库(添加前必须文件已存在):
git add readme.txt
提交到仓库:
git commit -m "xxxxx"
xxxxx:本次提交说明
查看目前git状态:
git status
察看提交历史记录:
git log
如果烟花缭乱,可以加上参数:
git log --pretty=oneline
回滚到上一版本:
git reset --hard HEAD^
再回到未来某个版本:
git reset --hard xxxxxxx
git提供了一个git reflog命令来记录你的每一次命令。
git reflog
git add实际上是把文件修改添加到暂存区
git commit实际上是把暂存区的所有内容提交到当前分支。
当你乱修改工作区的内容,想丢弃工作区的修改:
git checkout -- file
当你不但乱改了工作区的内容,还修改了暂存区的内容,想丢弃修改,分两步:
1:git reset HEAD file
2: git checkout -- file
假设你删除了某个文件,有两个选择,第一是你确实想删除某个文件,那就是:
git rm file
第二就是在你删错了,想还原,那就是:
git checkout -- file
创建sshkey:
ssh-keygen -t rsa -C "youemail@example.com"
接下来一路回车,生成两个文件:id_rsa是私匙,不能泄露。id_rsa.pub是公匙。可以放心告诉任何人
登陆github,add ssh key,title任意填写,key里边粘贴id_rsa.pub内容即可。
远端先创建一个仓库,点击Create a new repo,填写仓库名字learngit,其他默认,点击Create repository。
关联一个远程库:
git remote add origin git@github.com:guangmangdz/learngit.git
接下来再推送:
git push -u origin master,实际上就是把当前分支推送到远程。由于远端库是空的,所以加了-u参数,以后可以不加。
从现在起,只要本地做了提交,就可以通过命令:
git push origin master,把本地master分支最新更改推送之github。
从远程库克隆:
git clone git@github.com:xxxxxxxx/xxxxx.git
接下来:分支管理
创建分支,例如dev:
git checkout -b dev
也可以用一下两条命令创建:
git branch dev,创建dev分支
git checkout dev,切换到dev分支
列出当前分支:
git branch
合并分支:
git merge dev,操作前提是已经处于master分支状态
合并完成后,就可以放心的删除dev分支了:
git branch -d dev
察看git分支合并图:
git lob --graph
正常的合并是fast forward模式,当然也可以禁用:
git merge --no-ff -m "merge with no-ff" dev
首先,master分支应该是非常稳定的,也就是用来发布新版本,平时不用在上面干活。干活都在dev分支上,也就是说,你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,是不是的往dev分支上合并就可以了。
bug分支:
假如这种情况,你正在dev分支下写代码,但还没写完,又不能提交,而此时接到一个紧急处理bug的紧急任务,且该人物来源于master分支。可以先用git stash将当前工作现场储存起来。
bug解决完了,再回到dev分支,如何恢复现场?
1:git stash apply,恢复后,stash不删除,需要调用git stash drop
2: git stash pop,恢复同时把stash内容也删除。
feature分支:
开发过程中,有无穷无尽的新功能添加进来,但你不希望一些实验性质的代码把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发。
git checkout -b feature
开发完成后,切回dev,准备合并
git checkout dev
但是!突然该功能要求取消,必须销毁这个分支:
git branch -d feature,正常的话会提示销毁失败,因为还未合并,所以就来了下面的命令:
git branch -D feature,强制删除一个分支
多人写作:
察看远程库信息:
git remote
加-v可以察看更详细的信息:
git remote -v
推送分支:
git push origin master
git push origin dev
你的小伙伴想在dev分支下开发,就必须创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
多人写作工作模式通常如下:
        1、首先,试图用git push origin branch-name推送自己的修改
        2、如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并
        3、如果合并有冲突,则解决冲突,并在本地提交
        4、没有冲突或者解决冲突后,在用git push origin branch-name推送就能成功
        5、如果git pull提示“no tracking infor...”,说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
标签管理:
发布一个新版本时,通常大一个标签。这个标签唯一确定了打标签时刻的版本。标签也是版本库的一个快照。
git tag xxx
察看所有标签:
git tag
给历史某次提交的commit id打标签:
git tag vx.x xxxxxxx
创建带说明的标签:
git tag -a vx.x -m "tags shuoming" xxxxxxx
打错了标签,也可以删除:
git tag -d Vx.x
推送某个标签到远程:
git push origin vx.x
一次性推送所有未推送的标签到远程:
git push origin --tags
删除远程标签(需先删除本地标签):
git tag -d v0.9
git push origin :refs/tags/v0.9
让git显示颜色:
git config --global color.ui true
git可以忽略特殊文件,所有配置文件在:
https://github.com/github/gitignore
.gitignore文件本身也需要放到版本库里
最后说说搭建git服务器:
        1、ubuntu或debian及其,安装git
                sudo apt-get install git
        2、创建一个git用户,用来运行git服务
                sudo adduser git
        3、创建证书登陆:
                收集所有需要登陆的用户的公匙,把所有公匙导入到home/git/.ssh/authorized_keys文件里,易行一个。
        4、初始化git仓库:
                sudo git init --bare sample.git
        5、把owner改为git:
                sudo chown -R git:git sample.git
        6、禁用shell登陆:编辑etc/passwd
                git:x:1001:1001:,,,:/home/git:/bin/bash
                改为
                git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-10-20 00:05:54 | 显示全部楼层
一晚上绝对可以学会!!!

出0入0汤圆

发表于 2014-10-20 00:07:08 | 显示全部楼层
使用git 是走向牛逼的第一步  

出0入0汤圆

发表于 2014-10-20 00:33:30 | 显示全部楼层
正在学习中

出0入0汤圆

发表于 2014-10-20 00:37:14 来自手机 | 显示全部楼层
下载学习:)

出0入0汤圆

发表于 2014-10-20 02:03:36 来自手机 | 显示全部楼层
svn也不错的,

出0入0汤圆

 楼主| 发表于 2014-10-20 05:51:34 来自手机 | 显示全部楼层
夜猫子们不少^o^

出0入0汤圆

发表于 2014-10-20 06:33:41 来自手机 | 显示全部楼层
为什么没有windows版的,不想折腾了,还是用我的SVN

出0入0汤圆

发表于 2014-10-20 06:51:37 | 显示全部楼层
很不错啊,谢谢分享

出0入0汤圆

发表于 2014-10-20 07:45:59 来自手机 | 显示全部楼层
好好好看看

出0入0汤圆

发表于 2014-10-20 08:28:21 | 显示全部楼层
不错,谢谢分享!

出0入0汤圆

发表于 2014-10-20 08:47:30 | 显示全部楼层
长见识了,感谢分享~

出0入0汤圆

发表于 2014-10-20 08:52:55 | 显示全部楼层
wangyu_2011 发表于 2014-10-20 06:33
为什么没有windows版的,不想折腾了,还是用我的SVN

github‘上有windows 版本的啊

出0入0汤圆

发表于 2014-10-20 08:53:28 | 显示全部楼层
最近受够了我这里软件归档的管理,看样子还是自己学GIT好了,多谢整理,收藏了自己回来找台没人用的机子试一试。

出0入0汤圆

发表于 2014-10-20 09:03:02 | 显示全部楼层
用得上 谢谢楼主

出0入0汤圆

发表于 2014-10-20 09:06:01 | 显示全部楼层
谢谢分享~~~~

出0入0汤圆

发表于 2014-10-20 09:23:08 | 显示全部楼层
mark            

出0入0汤圆

发表于 2014-10-20 11:03:20 | 显示全部楼层
受教了,谢谢!

出0入0汤圆

发表于 2014-10-20 12:41:13 | 显示全部楼层
还没用过这么高端大气的东东  收藏备用

出0入0汤圆

发表于 2014-10-20 13:11:49 | 显示全部楼层
wangyu_2011 发表于 2014-10-20 06:33
为什么没有windows版的,不想折腾了,还是用我的SVN

TortoiseGit

出0入0汤圆

发表于 2014-10-20 14:46:02 | 显示全部楼层
不想共享,只想用来管理版本,不知道是否可行,没有看到服务器端的版本。是不是我的理解就不对啊。

出0入0汤圆

发表于 2014-10-20 14:59:28 | 显示全部楼层
果断收藏

出0入0汤圆

发表于 2014-10-20 16:08:20 | 显示全部楼层
这份教程真的很不错!我读了一遍,温故而知新。

出0入0汤圆

发表于 2014-10-20 17:01:55 来自手机 | 显示全部楼层
不错!顶一个!

出0入0汤圆

 楼主| 发表于 2014-10-20 17:39:45 来自手机 | 显示全部楼层
wangyu_2011 发表于 2014-10-20 14:46
不想共享,只想用来管理版本,不知道是否可行,没有看到服务器端的版本。是不是我的理解就不对啊。 ...

服务器和客户端一样的,sudo apt-get install git

出0入0汤圆

发表于 2014-10-20 17:50:39 | 显示全部楼层
没用过GIT啊  , 下载看看

出0入0汤圆

发表于 2014-10-20 18:03:08 | 显示全部楼层
上次就是找一个四轴的开源资料被逼下载git 不过还是比较简单的.

出20入118汤圆

发表于 2014-10-20 18:20:04 来自手机 | 显示全部楼层
还没用上服务器,保存本地

出0入0汤圆

发表于 2014-10-20 18:22:18 | 显示全部楼层
学习一下最先进的分布式版本控制系统

出0入0汤圆

发表于 2014-10-20 18:22:46 来自手机 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2014-10-20 19:46:29 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2014-10-20 21:56:59 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-10-20 22:59:45 | 显示全部楼层
svn感觉简单些。。。

出0入0汤圆

发表于 2014-10-20 23:48:18 来自手机 | 显示全部楼层
下载下来,慢慢学习

出0入0汤圆

发表于 2014-10-21 00:00:17 来自手机 | 显示全部楼层
谢谢分享;乌龟git,zhe这个gui,就好上手。……当然一些很好的gui,其实svn也Jian简单

出0入0汤圆

发表于 2014-10-21 07:17:42 来自手机 | 显示全部楼层
mark                 

出0入0汤圆

发表于 2014-10-21 07:33:55 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-10-21 07:50:05 | 显示全部楼层
收藏了!

出0入0汤圆

发表于 2014-10-21 08:20:51 | 显示全部楼层
先收了,谢谢

出0入0汤圆

发表于 2014-10-21 08:22:27 | 显示全部楼层
谢谢,楼主

出0入0汤圆

发表于 2014-10-21 08:43:03 | 显示全部楼层
正好要用,多谢

出50入8汤圆

发表于 2014-10-21 12:50:55 | 显示全部楼层
小乌龟的git就比较好用,不用记命令

出0入0汤圆

发表于 2014-10-21 12:53:04 | 显示全部楼层
学习,谢谢分享

出0入0汤圆

发表于 2014-10-21 13:32:01 | 显示全部楼层
好文章,但是不太习惯git,特别是切换分支。。。

出0入0汤圆

发表于 2014-10-21 14:05:51 | 显示全部楼层
学习了。

出0入0汤圆

发表于 2014-10-21 14:07:01 | 显示全部楼层
收藏了。虽然不是很懂。但这个是好东西。

出0入0汤圆

发表于 2014-10-21 14:13:46 | 显示全部楼层
是好东西  mark

出10入0汤圆

发表于 2014-10-21 14:39:14 | 显示全部楼层
使用git 是走向牛逼的第一步  

出0入0汤圆

发表于 2014-10-21 14:48:09 | 显示全部楼层
正需要.下来看看.感谢

出0入0汤圆

发表于 2014-10-21 14:56:14 | 显示全部楼层
先下了谢谢。。。。。。。。。

出0入4汤圆

发表于 2014-10-26 22:15:23 | 显示全部楼层
谢谢先====

出0入0汤圆

发表于 2014-11-5 22:47:04 来自手机 | 显示全部楼层
mark一下,git教程

出0入0汤圆

发表于 2014-11-6 09:48:03 | 显示全部楼层
有没有 个人 电脑资料 管理方面的软件推荐?

出0入0汤圆

发表于 2014-11-6 10:22:09 | 显示全部楼层
正是需要的!

出0入0汤圆

发表于 2014-11-6 11:23:25 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2014-11-6 11:34:23 | 显示全部楼层
git 很强大的,收藏先

出0入0汤圆

发表于 2014-11-6 11:35:37 | 显示全部楼层
收到,学习了,谢谢。

出0入0汤圆

发表于 2014-11-6 12:26:06 | 显示全部楼层
史上最浅显易懂的Git 教程!

出0入0汤圆

发表于 2014-11-6 14:09:26 | 显示全部楼层
看一下是什么来的

出0入0汤圆

发表于 2014-11-6 14:59:55 | 显示全部楼层
MARK                  

出0入0汤圆

发表于 2014-11-7 10:56:25 | 显示全部楼层
二楼正解,使用git 是走向牛逼的第一步

出0入0汤圆

发表于 2014-11-7 21:34:02 | 显示全部楼层
受教了 以前一直没有系统学Git,都是把开源的项目Clone下来就完了

出0入0汤圆

发表于 2014-11-12 15:06:35 | 显示全部楼层
正想好好学习一下git,下来看看,谢谢。

出0入0汤圆

发表于 2014-11-15 09:46:58 | 显示全部楼层
真是太棒了

出0入0汤圆

发表于 2014-11-15 09:55:34 | 显示全部楼层
看了,对入门很有帮助

出0入0汤圆

发表于 2014-11-15 10:01:47 | 显示全部楼层
其实git有windows版本,很容易使用,关键还是clone源码,所以大家可以选择自己喜欢的方式,不一定要用shell模式。

出0入0汤圆

发表于 2015-12-31 10:25:43 | 显示全部楼层
学习                              

出0入0汤圆

发表于 2015-12-31 10:26:41 | 显示全部楼层
写的漂亮,git现在太火了

出0入0汤圆

发表于 2015-12-31 12:45:01 | 显示全部楼层
看来有必要学习学习

出0入0汤圆

发表于 2016-1-1 09:25:38 | 显示全部楼层
谢谢!收藏了学习一下。

出0入0汤圆

发表于 2016-1-1 10:13:09 | 显示全部楼层
謝謝分享!

出0入0汤圆

发表于 2016-1-1 10:31:07 | 显示全部楼层
已经收藏了他博客,也学习了!

出0入0汤圆

发表于 2016-1-1 10:41:38 | 显示全部楼层
学习中!!!!

出0入0汤圆

发表于 2016-1-1 11:01:59 | 显示全部楼层
不错,学习学习

出0入0汤圆

发表于 2016-1-10 17:02:35 | 显示全部楼层
http://www.liaoxuefeng.com/ 这个是作者的官方网站,不只有git教程,还有JavaScript和python的教程,都不错。

出0入0汤圆

发表于 2016-1-18 16:49:32 | 显示全部楼层
看了他的博客,学习了!

出0入0汤圆

发表于 2016-1-18 18:19:41 | 显示全部楼层
下载收藏,感谢楼主分享~~

出0入0汤圆

发表于 2019-6-11 16:51:12 | 显示全部楼层
跟上时代,继续学习

出0入0汤圆

发表于 2019-6-11 21:17:13 | 显示全部楼层
感谢楼主分享

出150入0汤圆

发表于 2019-6-11 22:40:49 | 显示全部楼层
感谢楼主分享,入门级好书

出0入0汤圆

发表于 2019-6-11 22:44:17 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-6-11 22:49:58 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2019-6-12 07:14:48 来自手机 | 显示全部楼层
GIT是啥都不懂的路过………告辞!

出0入0汤圆

发表于 2019-6-12 08:14:03 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2019-6-12 08:21:48 | 显示全部楼层
谢谢分享。。。。。

出100入0汤圆

发表于 2019-6-12 08:21:51 | 显示全部楼层
之前看该作者的教程学习git的,教程做的不错,很适合初学者

出0入0汤圆

发表于 2019-6-12 14:55:59 | 显示全部楼层
Thank you !!!

出0入0汤圆

发表于 2019-6-25 09:49:25 来自手机 | 显示全部楼层
有用,谢谢分享。

出0入0汤圆

发表于 2019-8-27 22:06:49 来自手机 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2019-8-28 16:29:23 来自手机 | 显示全部楼层
谁能用一段简短的话,描述一下这些版本控自软件具体什么优势,最好以开发单片机固件为例。我都是一个问题版本一个压缩包,里面写清楚改了什么东西,一个项目一个文件夹,感觉也挺好,没体验过版本控制软件具体有啥优势。

出0入0汤圆

发表于 2019-8-28 16:44:32 | 显示全部楼层
当初学Python的时候就是通过廖雪峰的教程学的,快速入门还是非常好的

出0入0汤圆

发表于 2019-8-28 16:46:50 | 显示全部楼层
最近刚好在学,没有用命令行,用的TortoiseGit图形界面
感觉很好,两天上手

出0入58汤圆

发表于 2019-8-28 16:50:41 来自手机 | 显示全部楼层
xintao 发表于 2019-8-28 16:29
谁能用一段简短的话,描述一下这些版本控自软件具体什么优势,最好以开发单片机固件为例。我都是一个问题版 ...

如果十个人同时开发一个项目你用压缩包试试。哈哈

出0入0汤圆

发表于 2019-9-28 10:43:29 | 显示全部楼层
谢谢,有需要就找到了

出0入0汤圆

发表于 2019-9-28 10:46:06 | 显示全部楼层
请问为什么我下载后不是PDF文档?

出0入0汤圆

 楼主| 发表于 2019-9-28 14:50:30 | 显示全部楼层
kgdso210 发表于 2019-9-28 10:46
请问为什么我下载后不是PDF文档?

如果下载后是attach后缀,这应该是discuz经典问题,手工改下后缀即可。

出0入0汤圆

发表于 2021-10-12 10:18:14 | 显示全部楼层
感谢楼主分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 03:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表