在Windows下使用Git简介

Windows下的Git的使用命令和Linux、Unix、Mac都一样,本文将首先从一些应用场景介绍Git的基本命令(上),然后详细介绍如何在Virtual Studio 2015里使用Git(下)。(至于安装,在windows下实在是太简单了就不介绍了,直接去官网下载安装吧)

一、Git的基本操作
0. 一些必要的介绍
(1) 工作区,就是我们在本机上Git目录,我们直接修改文件的时候,所有的修改都只是在工作区。
(2) 暂存区(stage或者index),是版本库中的一部分。工作区中的修改需要通过git add添加到暂存区,这些修改在暂存区中等待被提交到版本库中形成版本。
(3) 分支,是版本库中的重要部分。初始情况下Git为我们自动创建了第一个分支master,我们之后创建的分支,以及所有分支里的所有提交形成的版本记录都保存在这里。
(4) HEAD指针,也是版本库中的重要部分。初始情况下它指向master,HEAD所指向的版本就是当前版本,也就是最新的提交。

  1. 两种开始方式(创建新的版本库 or 从远程库克隆)
    创建新的版本库,需要首先在本地创建一个空文件夹(最好不要有中文),然后在该目录下使用命令git init来把这个目录变成Git可以管理的仓库。
    从远程库克隆,首先你需要有一个远程库,不妨设为git@github.com:test/test.git,那么你就可以使用命令 git clone git@github.com:test/test.git 来把远程库里的所有文件克隆到本地。

  2. 对原始代码进行修改后提交
    (1) 创建分支(并不是修改代码一定要创建分支,也可以直接在master上进行,但是一个良好的习惯是无论是添加新的feature还是fix bug最好先创建一个分支,修改好了提交再合并到master)
    首先你要清楚当前你所处的branch,然后确定你的修改要基于哪个branch。假设你要在master上进行修改,当前又不在master branch则需要先切换过去,git checkout master,然后采用下面的命令创建你的分支。
    git branch dev/feature // 创建新的分支,名字是dev/feature git checkout dev/feature // 从master切换到我们刚创建的分支
    上面这两句话可以通过一个参数变成一句话,即-b,表示创建新的branch且切换过去。
    git checkout -b dev/feature
    (2) 修改文件(与git无关就不介绍了,假设修改了文件test.cs)
    (3) 将修改添加到暂存区
    git add test.cs
    注意,如果test.cs是你的project里的一个文件,还需要带上整个相对路径,如果不清楚,可以在add之前git status命令看看,它会告诉你哪个文件修改了还没有提交,直接用它提示的那个文件名
    (4) 把修改提交到仓库
    git commit -m “comment on your change”
    -m后面是本次提交的说明,你可以在这里简要描述你的修改内容,这样查看或者查找修改的历史记录时会比较方便。
    (5) 把修改合并到master
    git checkout master git merge dev/feature
    默认情况下这样合并是“快进模式”(Fast-forward),也就是直接把master指向dev/feature的当前提交,所以合并速度非常快。如果不想让他这样做,则可以使用参数–no-ff:
    git merge --no-ff -m “merged dev/feature” dev/feature
    (6) 把修改提交到Server
    git push origin master
    (7) 删除分支
    如果dev/feature不会再使用,则可以在merge之后就删掉它,反正Git里创建和删除分支的代价很小。
    git branch -d dev/feature

  3. 撤销修改
    上面介绍了如果提交你的修改,那如果发现修改不对,要撤销修改怎么办呢?当然在不同的阶段,撤销的方法也是不一样的。
    (1) 尚未将修改添加到暂存区
    采用git checkout – file直接丢弃工作区的修改。如果同一个文件你要保留一部分修改,撤销一部分的话,好像不行。所以建议你每完成一小块的工作就通过git add添加到暂存区。这样工作区的修改不会太大,直接丢弃没什么影响。
    比如,你先在test.cs文件里添加了func1()函数,add到暂存区;然后添加了函数func2()函数。突然间对这部分不满意了,这个时候直接采用git checkout – test.cs就可以丢弃添加的func2()函数,对func1()没影响。
    (2) 修改已经添加到暂存区,但是尚未提交
    用命令git reset HEAD file(这里HEAD表示最新的版本)可以把暂存区的修改撤销掉,这些修改被重新放回工作区,可以在工作区接着修改后添加到暂存区,或者在工作区再采用(1)中的方法直接丢弃。
    (3) 修改已经提交到版本库,但尚未推送到远程库
    参见接下来的一节 版本回退

  4. 版本回退
    (1) 用git log命令查看提交的历史记录
    可以添加参数–pretty=oneline让每个记录只输出一行
    git log --pretty=oneline
    也可以设置一些其他的参数,如下所示,你可以试试。
    git log --color --graph --pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset’ --abbrev-commit
    (2) 确定你要回退到的版本
    从上面的log中你可以看到历史上的各个版本,但是要确定你要回退到的版本,你首先要知道Git中的版本表示。在Git中,HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
    (3) 使用git reset命令回退到指定版本
    git reset --hard HEAD^
    (4) 若回退后又想回到新版本
    git reflog git reset --hard 3628164

  5. 合并的过程中遇到冲突
    当merge的时候遇到冲突时,我们需要手动修改冲突的部分,然后再提交。
    假设我们在master和test两个分支下都修改了test.cs的相同位置,则将test分支合并到master时就会出现冲突。我们打开test.cs文件,可以看到冲突的位置。可以直接修改后保存,再提交到master。
    可以用带参数的git log也可以看到分支的合并情况:
    git log --graph --pretty=oneline --abbrev-commit

链接:https://www.jianshu.com/p/40441281adc3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值