git 基本使用手册

博客更新:tengfeios.com

介绍一些关于git的基本操作

git的基本操作

最开始需要一个让git关联一个文件见,可以使用git init命令

git init

在当前目录下创建.git文件夹,使当前文件夹成为git仓库

现在本地有一个git仓库了,就可以告诉git,我想提交的文件有哪些,可以使用git add命令

git add 文件名

把文件放入暂存区,为建立历史作准备

执行 git add之后,git已经知道,我们要提交的文件有哪些了,那么现在可以使用git commit命令提交了

git commit

提交暂存区的所有文件,使文件成为一条git记录。执行git commit命令默认进入vim界面,我们在vim里面输入提交的备注,使用:wq就可以提交成功了。

执行git log

git log

显示提交历史

git 分支

什么是分支

在我们的开发工作中,可能要同时处理多个需求。那么每个需求和每个需求都是没有关系的,但是他们都是同一个项目的需求。

传统的工作方式,在同一份代码中去开发很多新需求,新代码的稳定性是最差的,会出现测试困难,开发不好定位等一些问题。

git 分支可以解决这个问题,我们在当前主分支上开辟一个新的分支,继续git commit,后面的提交历史不会影响主分支。最后我们这个分支的需求通过测试以后合入主干。

也有公司,有这样的场景,他们的项目要出一个新版本,比如2.0版本,但是1.0还要继续维护。这个时候,可以分别给每一个版本都建立一个分支。这样子,1.0版本分支上可以修复一些bug,但是他没有2.0的新特性。

不同的公司对于git分支的使用有不同的规范。

总而言之,分支的出现是为了分离提交的。新的一个开发方向可以考虑创建一个分支。新分支稳定后合入主干。

现在我们去创建一个分支

git branch 分支名

创建一个新的分支,新分支与老分支的提交记录是一样的。

创建完毕后,我们可以使用git checkout命令切换到新的分支

git checkout 分支名

切换分支

切换到新分支之后就可以进行新的提交了。

新的分支功能稳定后,就可以使用git merge命令把新分支合并到主分支上面去了。

git merge

在主分支执行git merge 要合并的分支名,完成合并

远程仓库

我们以前的所有操作都是在本地仓库进行的,一般项目会有多人协作开发。我们把本地的修改更新远程仓库。这样就可以把代码共享给同事。

首先我们添加一个远程仓库

git remote add 远程仓库名 远程仓库链接。

远程仓库名,可以随便写,一般是origin。

git remote

  • git remote
    获取所有远程仓库,使用git remote -v 可以获远程仓库链接

  • git remote add 远程仓库名 远程仓库链接
    添加一个git远程仓库,可添加多个远程仓库

  • git remote rm 远程仓库名
    删除一个远程仓库

现在就可以使用git push向远程仓库更新代码啦。

git push 远程仓库名 远程仓库分支名

把当前本地分支推入远程仓库。

如果没有远程仓库,可以使用github,码云之类的网站创建一个。

在我们执行git push向服务器推代码的时候,别人可能也在git push,我们需要通过git pull更新其他人的代码。

git pull 远程仓库 远程仓库分支

把远程仓库的分支下载到本地,并将远程分支与当前分支合并。

git冲突

实际开发过程中会产生一个经常遇到的问题。

如果其他人的提交和我们的提交同时修改了同一个文件,那么git merge会怎样合并呢?

我们可以尝试一下。

在两个不同的分支,修改同一个文件,分别提交。

执行git merge 分支名,合并分支

提示:

Auto-merging 冲突的文件名
CONFLICT (content): Merge conflict in 冲突的文件名
Automatic merge failed; fix conflicts and then commit the result

意思是自动合并分支失败,存在冲突。

现在git需要我们解决冲突,我们去解决一下冲突的问题。

打开冲突的文件名,会发现冲突的代码块被git修改过,大概如下

<<<<<<< HEAD

23

=======

32

>>>>>>> Dev

第一行代表冲突开始,HEAD表示当前分支

Dev表示要合并的分支

=======将分支的修改进行隔离

现在我们就知道如何修改冲突了,编辑此文件,把冲突的内容修改为理想的状态,

执行git add . 告诉git,我们已经解决冲突。

执行git commit,就可以成功合入分支了。

总结

通过以上的命令,可以完成日常的开发任务了。但是git作为常用的版本管理工具,还有很多需要掌握的内容。下一篇介绍git进阶的一些命令。

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

推荐阅读更多精彩内容

  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 1,818评论 0 12
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,647评论 4 54
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,627评论 9 163
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,494评论 0 13
  • 单独依靠内置资源实现的App,在市场上不存在.通过用户的操作,向服务器发送请求,并将服务器返回的数据在App页面展...
    uniapp阅读 7,830评论 4 5