git使用方法

本文详细介绍了Git的使用方法,包括创建版本库、理解工作区、暂存区和代码仓库的概念,以及本地Git的基本命令如添加文件、回滚、撤销修改和删除操作。特别强调了如何强制使用master分支覆盖本地代码,解决更新被驳回的问题。此外,还深入探讨了分支管理和bug修复时的git stash应用。
摘要由CSDN通过智能技术生成

1.创建git版本库

1、版本库又名仓库,英文名repository,你可以简单理解成一个目录,
2、这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便 	  任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
3、所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目
4、瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository)
5、细心的读者可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没    事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
mkdir s15_gitpro                 #先创建一个项目
cd s15_gitpro/                   #切换到这个项目目录
git init                         #初始化这个

2.工作区、暂存区、代码仓库

1、工作区: 就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)2、暂存区 :  暂存区就是文件夹 .git中的一个小部分(.git文件夹就是版本库)
3、版本库:工作区有一个隐藏目录.git,这个不属于工作区,这是版本库,  版本库中还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD

4、 把文件添加到版本库分为以下三步:
    1)vim Readme        #工作区(Working Zone) 比如在mkdir s15_gitpro下执行创建文件命令
    2)git add           #暂存区(Stage zone)
    3)git commit        #代码仓库(Repository master) 只有提交到代码库才能被git管理

3.本地git基本命令

1.将文件添加到仓库
git add Readme              #指定将Readme文件添加到暂存区
git add .                   #将当前目录中的所有文件全部添加到暂存区
git status                  #查看更改了哪些,创建了哪些,哪些没有添加到仓库,哪些添加到了仓库
git status diff readme       #查看readme文件具体修改了哪些
git commit -m "commit tag"   # git commit告诉Git,把文件提交到仓库-m后面输入的是本次提交的说明(版本名字)

说明:
# 执行git commit 命令时必须配置用户信息
git config --global user.name "Tom Git"
git config --global user.email tom@example.com
2.回滚
git log                          #查看所有提交到仓库的版本记录:   git log -2
git reflog                       #查看所有操作记录(状态的md5值和改变的值)
git reset --hard d9e0ed0         #回到指定版本(d9e0ed0是创建版本的MD5值得前6位或者7位)
git reset --hard HEAD^           #回到上一个版本
注:这样可以回到第一次提交到仓库的状态,但再使用git log看不到其他几次的md5值了
3.撤销修改
vim Readme                       #我们在Readme文件中写了一些错误的代码
git add .                        #然后又一不小心将文件从工作区提交到了 stage区
git reset HEAD Readme            #将Readme中刚提交到 stage区 的代码撤回到工作区
git status                       #查看目前工作区状态
git checkout -- Readme           #将Readme在工作区错误的代码丢弃
4.删除操作(两种方法)
  • 方法1:这种方法需要执行git add .
rm Readme
git add .
git commit -m "delete file by git rm"
git reset --hard HEAD^
  • 方法2:这种方法可以省去执行git add .
git rm Readme
git commit -m "delete file by git rm"
git reset --hard HEAD^

注: 在没有git commit前,使用 git checkout – Readme 可以恢复删除的文件(Readme)

5.强制使用master覆盖本地代码
$ git fetch --all
$ git reset --hard origin/master
$ git pull

注:git更新被驳回问题

在这里插入图片描述

1. git pull origin master --allow-unrelated-histories
2.git pull origin master
3.git init
4.git remote add origin ssh://git@git.limikeji.com:10022/yanhui/webweb.git (可忽略)
5.git add .
6.git commit -m 'testst'
7.git push -u origin master

git分支管理(创建与合并)

1.分支管理的作用

1、假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码
还没写完,不完整的代码库会导致别人不能干活了
2、如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
3、现在有了分支,你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作
4、而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,
又不影响别人工作
5、 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗
牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用
6、 但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1
个文件还是1万个文件

2.分支管理----创建分支

git branch                         #查看现有分支
git checkout -b dev               #创建并切换到分支dev, -b参数指切换dev分支
git checkout master               #从dev分支切换到master
git branch -D bug-101             #删除本地分支bug-101

此时对项目进行修改
git add .                             #提交到舞台区
git commit -m "update readme"         #提交到仓库
git push origin dev                   #将跟新内容提交到分支dev中而不是master中

3.如何将分支dev中的代码合并到主分支master中

git checkout master           #从dev分支切换到master
git pull                      #将master上的项目下载到本地
git merge dev                 #在master上执行这条命令,试图合并master和dev(报错,master更新了)

vim Readme                     #将不一致的地方手动合并
git add .
git push origin master         #手动合并后就可以将dev分支上修改的东西上传到GitHub的master中了
git log –graph                 #查看从什么地方出现的分支

4.分支取名规范

1、方法1: 使用人名作为分支名(传统开发每个人负责一个功能模块)
2、方法2: 根据功能模块设置分支名(如: feature-100 hotfix-99

5.全局dev分支(相当于上生产环境前的测试分支)

1、master是不能再上面开发的(master必须是一个稳定版本)
2、所以会有一个全局dev分支,这样就有三种,master,dev,和每个人自己的分支
3、只有在全局dev中没问题后才会真正pull到master中

bug分支(git stash)

1.git stash 使用场景

1、当正在其它分支写代码时突然有一个在master上发现一个bug需要立刻修改
2、这时当然你可以将正在修改的内容先提交到自己的分支中再切换到bug分支,但比较麻烦
3、这里就可以执行git stash 命令可以将现在这个状态临时保存起来

2.git stash使用

1、在dev工作区正在写东西,突然有个bug需要立刻修改

vim Readme              #突然出现了一个bug
git stash               #将dev中未保存的文件放到一个临时区(以免带到了bug分支中)

2、切换到bug-100分支,修复bug,并提交到本地仓库

git checkout -b bug-100             #创建并切换到bug-100分支
vim Readme                          #在bug-100分支中修复bug
git add .                           #将修改内容保存到bug-100分支的舞台区
git commit -m 'commit-100-bug'      #提交到仓库

3、切换到master合并bug-100并提交到GitHub

git checkout master             #切换到master
git merge bug-100               #合并master和bug-100分支
git push origin master          #将修改后的内容推送到GitHub上(即可更新master)

4、再次切换到dev分支,恢复以前的状态

git checkout dev              #再次切换到dev分支
git status                    #dev分支的工作区没有东西
more Readme                   #发现以前在dev工作区正在修改未提交到本地仓库的东西没有了
git stash list                #查看使用git stash 临时保存的文件
git stash apply               #恢复上次使用git stash 临时保存的文件
git status                    #可以看到又回到了,切换到bug-100分支前的修改状态了

5、git stash的其他操作

git stash drop                #删除最久的那个使用git stash 保存的临时状态
git stash apply stash@{0}     #指定恢复到那个临时状态
git stash pop                 #恢复并删除上一个临时状态1:git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除
注2:另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值