梦里git知多少

1、git安装

下载:https://git-scm.com/downloads 注意对应版本(macx,windows,linux)

安装:一路向下

打开命令窗口:Git Bash

初始化:设置全局变量

         命令:git config --global user.name  “kmor” (设置的是提交者用户名)

         命令:git config –global user.email kmor1984@163.com (设置邮箱)

2.创建版本库

命令:mkdir –p D:/git/repository (在D盘上创建了一个文件夹)

         进入D:/git/repository

命令:    git init (初始化git库)

          命令:git add test.txt (把文件添加到git库的暂存区,并未提交)

          命令:git commit –m “这个是添加提交时的说明”

                  遇到的问题:如果要提交的文件不是在/d/git/repository下面的话,需要手动把该文件添加到这个目录下,再add到暂存区,否则会提示添加不成功,如:

$ git add 学习帐号.txt /d/git/repository/

提示错误 如下:fatal: D:/git/repository/: 'D:/git/repository/' is outside repository

                 批量add多个文件,一次commit提交暂存区里所有的文件,命令如下:

        命令:git add text1.txt text2.txt text3.txt

        命令:git commit –m “一次提交所有的暂存库里的文件---慎用

         命令:git commit  test1.txt  text2.md  -m "提交多个指定文件"

查看被修改,但未提交的文件: 命令:git status  这个命令是如果有repository只是修改了而没有提交,运行该命令会提示有哪些文件修改了未提交。如果想要查看具体的哪些内容被修改,可以运行 git diff ,该命令只会显示不同的内容,相同的内容不展示。

 

      以下操作遇到的问题:text.txt文件如果含有中文件,展示为乱码,MD文件不会出现乱码。

查看提交日志:命令:git log - -pretty=oneline(会显每一次提交的记录)

 

3、版本的回退

命令:git reset - -hard head^(回退上一个版本)

命令:git reset - -hard head^^(回退上上一个版本)

命令:git reset - - hard a73d737(a73d737这个是每次提交的版本日志的头文件索引)

4、git工作区间

git工作区是指文件目录

版本库.git目录

 

当使用git add 《文件》 时是把工作区的文件放到版本库里面的暂存区

当使用git commit -m  把暂存区里面的东西提交到当前分支的HEAD里面

一些小测试:

场景1:一个文件经过多次add(但未commit),提交后以最后一次的add内容为准。

场景2:一个文件经过修改—add,再修改(未add),提交后,还是第一次的修改为主。

        以上场景说明:commit,只负责提交暂存区里面的文件。

场景3:只在工作区,未添加到暂存区----回退(前提是:该文件之前有提交过版本库)

         命令:git checkout test2.txt(相当于是把版本库里的版本重新拉取到本地)

场景4:已添加到暂存区----回退(此回退是从分支上拉取到暂存区里)

        命令:git reset head test2.txt(相当于是把分支的的版本重新拉到暂存区)

场景5:已提交的版本---回退

       命令:git reset –hard head^(见上面的版本回退)

5、版本 的删除

  1. 删除本地的文件:rm –rf test2.txt (此操作可以通过git checkout test2.txt来进行文件恢复)
  2. 删除版本库的文件:git rm –rf test2.txt(此操作是把版本库里的东西进行删除,包括暂存区和分支)

6、创建一个dev分支

命令:git checkout  -b dev (此命令相当于两个命令的组合:git branch dev <新建一个分支dev>;git checkout dev<切换到这个dev分支上>)

切换分支:git checkout (master或者dev)

查看当前的分支:git branch

一个小操作:将工作区的一个test2.txt文件修改完成后,commit到dev分支上,再切换到master分支,再git checkout test2.txt,后查看,文件又恢复到了之前的一个版本,这是因为test2.txt修改了,只提交到了dev分支上,并未提交到master分支上,所以checkout到本地后,版本还是之前的那个版本。

一个值得关注的问题:切换分支后,工作区间的内容也会跟分支保持一致,如以上小操作,切换到master后,打开工作区间的文件内容查看,是master这个分支的文件内容。切换到dev分支后,打开的工作区间的文件内容,是dev这个分支的文件内容。

7、合并分支

命令:git merge dev(值得注意:首先要切到你要合并的分支上,再行合并)

解决代码冲突问题:

            原因描述:当前有两个分支,一个是master,一个是dev,从master上面拉出一个dev时,dev再进行修改,同时,master也发生了不同的修改,这个时候,你再把dev merge到master上时,会提示代码冲突,这个冲突需要手动去掉冲突。

          合并分支应该注意的地方:git merge dev这个命令默认是开启fast-forward模式,这个模式的特点是:合并之后,就成了一个分支记录了,看不出来从哪个分支合到哪个分支的轨迹,但是合并时,把fast-forward关掉后,则查询合并记录,则能清楚的显示它的轨迹。

        合并关掉fast-forward命令:git merge --no-ff -m "merge with no-ff" dev

查看合并历史信息命令:git log --graph --pretty=oneline --abbrev-commit

8、分支挂起

当有dev分支上在开发东西,还未合并到主干,另一个紧急bug要修改,只能从master上再拉一个分支,这个时候如果你来回切主干的话,工作区间还是之前的dev上还没有开发完成的代码。这个时候只能挂起dev,先解决bug再干活了。进入到dev,挂起命令:git stash ,再解决bug,解决完成之后,需要解挂,解挂前先查看一下挂起命令:git stash list 。解挂命令:git stash apply,解挂后,需要删除临时挂起的文件,命令如下:git stash drop(解挂和删除挂起文件的这两个命令也可以合成一个命令:git stash pop)

挂起可以有多次挂起,每一次挂起会创建一个挂起点,每一个挂起点会有对应的保存挂起的数据信息。所以可能会存在多个挂起点,所以要恢复某一个挂起点时:git stash apply stash@{0}

9、分支删除

命令:git branch –D dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值