avr-arm 发表于 2014-10-19 23:23:18

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

作者原话:
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

ourdemo 发表于 2014-10-20 00:05:54

一晚上绝对可以学会!!! {:handshake:}

男小北 发表于 2014-10-20 00:07:08

使用git 是走向牛逼的第一步

xtrig 发表于 2014-10-20 00:33:30

正在学习中

libc0607 发表于 2014-10-20 00:37:14

下载学习:)

kutf 发表于 2014-10-20 02:03:36

svn也不错的,

avr-arm 发表于 2014-10-20 05:51:34

夜猫子们不少^o^

wangyu_2011 发表于 2014-10-20 06:33:41

为什么没有windows版的,不想折腾了,还是用我的SVN

zml322 发表于 2014-10-20 06:51:37

很不错啊,谢谢分享

dhairoot 发表于 2014-10-20 07:45:59

好好好看看

DCJ 发表于 2014-10-20 08:28:21

不错,谢谢分享!

diy0769 发表于 2014-10-20 08:47:30

长见识了,感谢分享~

matao5566 发表于 2014-10-20 08:52:55

wangyu_2011 发表于 2014-10-20 06:33
为什么没有windows版的,不想折腾了,还是用我的SVN

github‘上有windows 版本的啊

Hassen_JYA 发表于 2014-10-20 08:53:28

最近受够了我这里软件归档的管理,看样子还是自己学GIT好了,多谢整理,收藏了自己回来找台没人用的机子试一试。

mathison 发表于 2014-10-20 09:03:02

用得上 谢谢楼主

linux-0405209 发表于 2014-10-20 09:06:01

谢谢分享~~~~

cece_co 发表于 2014-10-20 09:23:08

mark            

dddddddwolf 发表于 2014-10-20 11:03:20

受教了,谢谢!

zhutao7589 发表于 2014-10-20 12:41:13

还没用过这么高端大气的东东{:smile:}收藏备用

elsonx 发表于 2014-10-20 13:11:49

wangyu_2011 发表于 2014-10-20 06:33
为什么没有windows版的,不想折腾了,还是用我的SVN

TortoiseGit

wangyu_2011 发表于 2014-10-20 14:46:02

不想共享,只想用来管理版本,不知道是否可行,没有看到服务器端的版本。是不是我的理解就不对啊。

zerttao 发表于 2014-10-20 14:59:28

果断收藏

wuyya 发表于 2014-10-20 16:08:20

这份教程真的很不错!我读了一遍,温故而知新。

leiyin 发表于 2014-10-20 17:01:55

不错!顶一个!

avr-arm 发表于 2014-10-20 17:39:45

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

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

qs6361036 发表于 2014-10-20 17:50:39

没用过GIT啊, 下载看看

jcrorxp 发表于 2014-10-20 18:03:08

上次就是找一个四轴的开源资料被逼下载git 不过还是比较简单的.

ztg328 发表于 2014-10-20 18:20:04

还没用上服务器,保存本地

touch_mcu 发表于 2014-10-20 18:22:18

学习一下最先进的分布式版本控制系统

jordonwu 发表于 2014-10-20 18:22:46

不错,学习了

lly10011 发表于 2014-10-20 19:46:29

感谢楼主分享

ouzw 发表于 2014-10-20 21:56:59

谢谢分享

youthdou 发表于 2014-10-20 22:59:45

svn感觉简单些。。。

gqjxy 发表于 2014-10-20 23:48:18

下载下来,慢慢学习

cyberjok 发表于 2014-10-21 00:00:17

谢谢分享;乌龟git,zhe这个gui,就好上手。……当然一些很好的gui,其实svn也Jian简单

t2008101037 发表于 2014-10-21 07:17:42

mark               

ZDHCKJS 发表于 2014-10-21 07:33:55

谢谢分享

atg525 发表于 2014-10-21 07:50:05

收藏了!

jilz88 发表于 2014-10-21 08:20:51

先收了,谢谢

iygniqiew 发表于 2014-10-21 08:22:27

谢谢,楼主

zkf0100007 发表于 2014-10-21 08:43:03

正好要用,多谢

blueagle2012 发表于 2014-10-21 12:50:55

小乌龟的git就比较好用,不用记命令

512561411 发表于 2014-10-21 12:53:04

学习,谢谢分享

dswkl11 发表于 2014-10-21 13:32:01

好文章,但是不太习惯git,特别是切换分支。。。

tj7856 发表于 2014-10-21 14:05:51

学习了。

omega999 发表于 2014-10-21 14:07:01

收藏了。虽然不是很懂。但这个是好东西。

lansen0815 发表于 2014-10-21 14:13:46

是好东西mark

mainbp 发表于 2014-10-21 14:39:14

使用git 是走向牛逼的第一步

zcoder 发表于 2014-10-21 14:48:09

正需要.下来看看.感谢

qxc16b 发表于 2014-10-21 14:56:14

先下了谢谢。。。。。。。。。

cnshibo 发表于 2014-10-26 22:15:23

谢谢先====

windrarara 发表于 2014-11-5 22:47:04

mark一下,git教程

litaohqqt 发表于 2014-11-6 09:48:03

有没有 个人 电脑资料 管理方面的软件推荐?

richie550 发表于 2014-11-6 10:22:09

正是需要的!

dadaohyb 发表于 2014-11-6 11:23:25

学习一下

bestlong22 发表于 2014-11-6 11:34:23

git 很强大的,收藏先

就在今天 发表于 2014-11-6 11:35:37

收到,学习了,谢谢。

xly2014 发表于 2014-11-6 12:26:06

史上最浅显易懂的Git 教程!

second_chan 发表于 2014-11-6 14:09:26

看一下是什么来的

dmzy 发表于 2014-11-6 14:59:55

MARK                  

shian0551 发表于 2014-11-7 10:56:25

二楼正解,使用git 是走向牛逼的第一步

monkey_hzh 发表于 2014-11-7 21:34:02

受教了 以前一直没有系统学Git,都是把开源的项目Clone下来就完了

air 发表于 2014-11-12 15:06:35

正想好好学习一下git,下来看看,谢谢。

bgod1986414 发表于 2014-11-15 09:46:58

真是太棒了

myin4 发表于 2014-11-15 09:55:34

看了,对入门很有帮助

xingyuezh 发表于 2014-11-15 10:01:47

其实git有windows版本,很容易使用,关键还是clone源码,所以大家可以选择自己喜欢的方式,不一定要用shell模式。

chengying 发表于 2015-12-31 10:25:43

学习                              

RudeBoy 发表于 2015-12-31 10:26:41

写的漂亮,git现在太火了

zjy9430 发表于 2015-12-31 12:45:01

看来有必要学习学习

wanglei1984 发表于 2016-1-1 09:25:38

谢谢!收藏了学习一下。

jdlee 发表于 2016-1-1 10:13:09

謝謝分享!

t35720864 发表于 2016-1-1 10:31:07

已经收藏了他博客,也学习了!

longjunyi 发表于 2016-1-1 10:41:38

学习中!!!!

AllEle 发表于 2016-1-1 11:01:59

不错,学习学习

wangcjishu 发表于 2016-1-10 17:02:35

http://www.liaoxuefeng.com/ 这个是作者的官方网站,不只有git教程,还有JavaScript和python的教程,都不错。

sunnyczp 发表于 2016-1-18 16:49:32

看了他的博客,学习了!

l36092 发表于 2016-1-18 18:19:41

下载收藏,感谢楼主分享~~

Dew_maple 发表于 2019-6-11 16:51:12

跟上时代,继续学习

lsy5110 发表于 2019-6-11 21:17:13

感谢楼主分享

leolink 发表于 2019-6-11 22:40:49

感谢楼主分享,入门级好书

eliterxzgxu 发表于 2019-6-11 22:44:17

感谢楼主分享

chinazhaoyl 发表于 2019-6-11 22:49:58

感谢楼主分享

dexidz 发表于 2019-6-12 07:14:48

GIT是啥都不懂的路过………告辞!

8s209 发表于 2019-6-12 08:14:03

感谢分享

Excellence 发表于 2019-6-12 08:21:48

谢谢分享。。。。。

linhuaou 发表于 2019-6-12 08:21:51

之前看该作者的教程学习git的,教程做的不错,很适合初学者

liang16888 发表于 2019-6-12 14:55:59

Thank you !!!

JohnSmith 发表于 2019-6-25 09:49:25

有用,谢谢分享。

ju2320601 发表于 2019-8-27 22:06:49

感谢分享

xintao 发表于 2019-8-28 16:29:23

谁能用一段简短的话,描述一下这些版本控自软件具体什么优势,最好以开发单片机固件为例。我都是一个问题版本一个压缩包,里面写清楚改了什么东西,一个项目一个文件夹,感觉也挺好,没体验过版本控制软件具体有啥优势。

love0679 发表于 2019-8-28 16:44:32

当初学Python的时候就是通过廖雪峰的教程学的,快速入门还是非常好的

MrDo 发表于 2019-8-28 16:46:50

最近刚好在学,没有用命令行,用的TortoiseGit图形界面
感觉很好,两天上手

shawn_bu 发表于 2019-8-28 16:50:41

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

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

kgdso210 发表于 2019-9-28 10:43:29

谢谢,有需要就找到了

kgdso210 发表于 2019-9-28 10:46:06

请问为什么我下载后不是PDF文档?

avr-arm 发表于 2019-9-28 14:50:30

kgdso210 发表于 2019-9-28 10:46
请问为什么我下载后不是PDF文档?

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

zhiyuanzhitian 发表于 2021-10-12 10:18:14

感谢楼主分享
页: [1]
查看完整版本: 分享【史上最浅显易懂的Git教程! --By 廖雪峰】