git的使用

前言:

一、git是什么?

事情是这样的,自2002年开始,林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。到了2005年,Linux内核开发团队的安德鲁·垂鸠写了一个简单程序,可以连接BitKeeper的存储库。这时BitKeeper著作权拥有者拉里·麦沃伊不高兴了,认为这事对BitKeeper内部使用的协议进行逆向工程,于是决定收回Linux内核开发团队无偿使用BitKeeper的许可。这点小事肯定难不倒大神林纳斯,仅仅10天之后,第一个git版本就写出来了。看到这里大家应该都知道git是一个版本控制管理系统了。对,Git就是一款开源的分布式版本控制系统(Distributed Version Control System)。

二、版本控制系统

上栗中因为他没有使用版本控制工具。如果使用Git做版本控制的话,只需在键盘上敲入几行命令就能找回方案A的代码,阿秃自然不用再通宵了。版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。运用版本控制系统,我们可以对代码进行版本管理,可以随时查看之前版本的内容,随时回溯到之前版本中。团队合作的时候也可以自动合并代码,而不需要用一个共享文件,或者是进行定期的备份。

三、集中式和分布式版本控制系统

版本控制系统目前来讲有两大控制系统:
集中式:svn
分布式:git
要理解SVN和Git的使用差别为什么那么大,最直接的办法是搞清楚集中式和分布式版本控制系统之间的差别。集中式版本控制系统有单一的集中管理服务器,保存所有文件的修订版本,所有的文件。客户端的电脑并不会保存历史版本,所以如果想查看历史版本,必须联网才能查看,并且如果集中管理的服务器出现故障,可能导致历史版本丢失,最多只能从本地的文件恢复到最后的版本。另外网速直接影响提交和下载文件的速度,很多时候很影响使用体验。
分布式版本控制系统没有集中管理的服务器,每个人的电脑都有一个完整的版本库,我们可以在本地进行修改提交,查看历史版本。这里很多人有个疑问,我们平时工作中,经常把代码推到“远程仓库”,这个“远程仓库”不就是集中式版本控制系统里面的集中管理服务器嘛?其实,这只是分布式版本控制系统里面的一个节点而已,这和你自己的电脑还有你同事阿秃的电脑一样,都是可以理解为其中一个节点。为了协作方便,我们都在这个“远程仓库”上面交换“修改”,所以容易给大家造成中央服务器的错觉。

四、基本概念

工作拷贝(工作目录):用于存放产品开发数据本地工作目录。
暂存区 (Index):用于存放待提交数据的缓存区。
本地仓库:远端库的一个完整的拷贝,包括所有文件的修改记录,分支等。
远程仓库:本地仓库clone来源。
快照(snapshot):版本库某个时间点所有文件集合。
全球版本号(commitID):Git库的版本号是通过SHA-1算法根据库中的所有内容计算出一个40位的哈希值,这个哈希值是全球唯一的,基本只要前六位就可以唯一标识了。

五、理解修改文件在Git的流动

我们所有修改都是在工作目录进行的,修改完以后需要先添加到暂存区,然后再提交到本地仓库。提交完以后会产生commitID,标识当次提交。在之后的操作中,可以通过commitID回滚到某次提交状态。最后,我们还需要把本地的仓库的提交记录推送到远程仓库。

六、基本操作

git config --global user.name "herion"配置全局用户名
执行命令,如果没有任何反应,代表命令执行成功
git config --global user.email "herion@163.com配置用户邮箱
执行命令,如果没有任何反应,代表命令执行成功
git config --list查看配置的用户信息
git config user.name "herion"配置本项目的用户名
git config user.eamil "herion@163.com配置本项目的邮箱
在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置
git init git初始化本地仓库
git clone 仓库地址克隆远程仓库到本地,即“复制”远程仓库到本地
git add 文件名将单个文件添加到暂存区
git add . 将所有的文件添加到暂存区
git commit -m ‘提交信息' 提交更改到当前分支,后面的是提交日志
git status 查看当前git的状态,例如文件是否更改
untracked files显示未跟踪的文件,即未加入版本控制的文件
git branch

git branch 分支名称

git checkout 分支名称

git log

git pull <远程主机名> <远程分支名>:<本地分支名>

git push <远程主机名> <本地分支名>:<远程分支名>

将分支合并到当前分支
git merge <分支名称>

git branch -d <分支名称>

git push <远程主机名> --delete <BranchName>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容