git基础知识与常规操作

git是什么?

Git 是一个开源的,目前世界上最先进的分布式版本控制系统

SVN与Git的最主要的区别?

  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
  • Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

git工作流程

  • 主要分为:Remote(远程仓)->Repository(版本仓,本地仓库)-> Index(临时区) ->Workspce(自己工作区)

先从自己clone项目下来开始说整个工作流程分为(workspace->Index->Repository->Remote)

  • Workspace:就是平时进行开发改动的地方,是当前看到最新的内容,在开发的过程也就是对工作区的操作
  • Index:当执行 git add 的命令后,工作区的文件就会被移入暂存区,暂存区标记了当前工作区中那些内容是被 Git 管理的,当完成某个需求或者功能后需要提交代码,第一步就是通过 git add 先提交到暂存区。
  • Repository:位于自己的电脑上,通过 git commit 提交暂存区的内容,会进入本地仓库。
  • Remote:用来托管代码的服务器,远程仓库的内容能够被分布在多个地点的处于协作关系的本地仓库修改,本地仓库修改完代码后通过 git push 命令同步代码到远程仓库。

配置Git、初始化仓库

1. 配置Git 账户信息

git config --global user.name 'rosebay'
git config --global user.email 'userEmail'

2. 创建一个新目录(版本库)并初始化

 mkdir demo
 cd demo
 git init
 

clone 远程仓库

git clone 代码仓库地址

创建分支

1. 查看仓库的状态
git status

2. 创建dev分支并选择此分支
git chechout -b dev

新建文件、提交、回滚、日志查看

 0. 在demo文件夹dev分支上创建`readme.md`文件
 1.查看仓库状态 :此时应有提示有文件需要被加入到文件缓存区
 
  git status

2.把有改动的文件加入到文件缓存区

 git add  readme.md
 
 3.查看仓库状态:此时应有提示有文件需要commit
 
 git status
 
 4. 把文件缓存区的文件加入到版本库中(即把改动点更新到对应分支)
 
 git commit -m '新增 readme.md 文件'
 
  5.对文件修改并重复上面的操作 因为进行了commmit 提交了文件修改,当前空文件的分支被激活
 
  git branch
  git status 
  git add readme.md
  git  commit -m 'readme,md被修改了'
  git status
 
  • 代码回滚:如果上步commit 时失误的操作,想回到上次commit 的状态可以使用文件回滚操作
  git reset --hard HEAD~1
  • 代码回滚后,如果文件缓存区的修改需要移除
  git checkout readme.md
  git status
  • 当一次性修改多个文件时,可以通过以下命令批量操作
    git add .
    git checkou .
  • 在提交了若干提交和更新后,可以使用gitlog 命令查看操作历史
   git log
  • git reflog 可以查看所有分支的所有操作记录
   git reflog
  • 在webstorm 中查看git log
  File->git->show History ->log

本地git仓库关联远程仓库

```
 1.本地仓库与远程仓库关联
 git remote add origin '远程仓库的地址'
 
 2. 拉取远程分支代码
 git pull orign dev
 
 3. 修改代码并更新到本地
 git add.
 git  commit -m '修改代码描述'
 
 4. 上传本地代码到远程分支
 git push orign dev
 
 5. 此后可以直接使用git pull 、git push  操作远程分支代码
 git pull 
 
 6.改动代码
 git add.
 git commit -m '改动点描述'
 git push
 
 7.push本地代码到远程master分支时需要权限
 8. 关联远程
 
```

远程仓中有部分代码,不允许直接把本地的代码覆盖上去时

```
1. 更新所有远程分支到本地
git fetch 

2.更新内容与本地合并
git merge

3.merge 报错 :fatal refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
 
 4.再次合并
 git merge
 
 5. merge 报错 Please , commit your cahnges before you merge
 git add . 
 git commit -m  '提交信息'
 git merge
 
 6. 拉取远程分支代码
 此时本地与远程分支代码相同不会报错
 git pull
 
7. git push orgin '远程分支名称'

```

解决代码冲突

```
  1.clone 远程分支代码到本地另一个目录
    git clone '分支git地址'

  2.修改readme.md 文件内容,并push 到远程分支
     git status
     git add .
     git commit -m '代码内容修改描述'
     git push

  3.找到最开始的该工程文件夹,修改和第2步中文本的同一行内容
    git status 
    git add .
    git commit -m '代码内容修改描述'

  4.拉取远程分支代码
    git pull

  5.冲突报错 ,解决冲突 根据冲突提示内容,手动修改代码
    git add .
    git commit -m '修改代码描述'

 6.解决冲突后再次拉取代码
     git pulll

 7.将解决冲突后最新的代码push
    git push    

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

推荐阅读更多精彩内容