Windows下 Git 常用操作记录

1、windows客户端安装

下载地址:http://msysgit.github.io/。
全部默认安装即可。
安装完成后,会在系统右键菜单中集成等菜单选项,说明安装成功。

2、配置git用户名及邮箱地址

这个就相当于一个用户的标识信息,表示创建仓库的所有者信息。

3、创建版本库

新建一个空目录作为你的仓库。比如:。
在目录中右键选择,输入,初始化当前目录作为你的仓库。

操作完成后,会在当前目录下创建一个的文件夹,默认是隐藏的,不要手动操作这个目录下的任何文件,它是git用来跟踪版本库的。

3.1、 添加文件到版本库

使用将工作区的文件readme.txt(文件必须存在)添加到暂存区(staged状态,commit前必须的操作,否则无法commit。git提交(commit)的时候是将暂存区的文件全部一次性提交到仓库永久保存的,即一个新的主分支产生了)

commit 之前可以使用查看当前工作区副本与暂存区之间的差别

确定后,使用提交到版本库

使用查看当前版本库工作目录中文件的状态。
文件状态有已提交(committed),已修改(modified),已暂存(staged),还有没有版本控制的(untracked)。

平时开发的时候,肯定有很多临时文件(文件夹)是不需要提交到版本库的。但每次时会显示很多Untracked files,git提供一种方案来忽略显示这些文件,就是在目录中创建一个文件,将你不想显示的文件类型都罗列出来。git已经提供了常用类型的配置文件,你不用自己创建,只需下载后手动增加修改即可,具体参考https://github.com/github/gitignore。

Remarks:commit 前必须先 add ,这样 git 才知道要 commit 什么。

4、查看提交日志

使用可以查看提交的详细日志,如果嫌太繁杂,可以使用显示精简的日志。

前面的一大串数字字母表示提交的各个版本标识,是通过SHA1计算出来的。
括号里的HEAD表示这是最新的提交版本。

5、版本回退

现在最新提交的版本是c77349(上面日志中显示的版本标识的前6位),如果想回退到注释为的版本。使用

这样就回退到指定的版本了。
命令中的版本标识可以任意取前几位,但一定要唯一确定。
再使用查看一下提交日志。

发现没,已经看不到注释为这条记录了,最新的版本也跟着变成了这个版本了。(与人类的观念一致)

如此,又有一个问题,你可能又后悔了,想重新恢复到注释为的版本,当然你可以在窗口记录中找到对应的版本id来恢复。

但是,可能你想这么做的时候已经是第二天了,电脑都关机了,哪里还知道这个id。没关系,
git也提供了相应的功能。输入即可。

它记录了所有的commit操作信息,当然包括对应的版本的id了,这下终于没有后顾之忧了。

6、撤销工作区的修改

假如你又对 readme.txt 文件做了些修改,突然发现这些修改没什么意义,想撤销你的修改,回到没有修改以前的状态。可以使用

如果之前没有将此文件添加到暂存区(add)的话,此文件就会恢复到 HEAD 版本库(最新的版本库)的状态。
如果之前已经添加到暂存区还没有提交的话,此文件就会恢复到添加到暂存区时的状态。

如果已经添加到暂存区,可是还是想恢复到提交 HEAD 版本时的状态的话,可以使用命令
,将某个文件单独回退到最新提交的状态(HEAD 表示最新提交的那个版本)。同时,这个命令会恢复暂存区中此文件的状态。

7、删除文件并提交及误删处理

如果想从版本库中删除 readme.txt 文件,先在工作目录中删除此文件,这样 git 就会检测到,然后输入命令,git 会从暂存区中删除此文件,然后正常提交即可。

这样文件就从版本库中真正的删除了。

如果是本地文件被误删了,可以使用命令恢复到最近一次或操作的状态。

8、远程仓库操作

以上介绍的所有操作都是针对本地仓库。git 还可以对远程仓库进行克隆(将远程仓库的下载一份到本地,作为一个独立的分支),推送(将自己的修改提交到远程仓库)以及拉取(检出别人对仓库做的提交)。
下面分步介绍:

8.1、设置SSH Key(以 github 为例)

为了使与远程仓库通信更加安全,git 使用了 SSH 对通信加密。
所以需要生成 SSH 通信密钥。

  1. 在中输入命令,一路回车,忽略存储路径和密码的设置。你就会在用户目录中发现两个文件,id_rsa(私钥)和 id_rsa.pub(公钥)。
  2. 私钥文件不要动。在 github.com 中依次打开 Settings-SSH and GPG keys-SSH keys,单机,在Title中输入提示信息,将id_rsa.pub的内容复制到Key中,保存。

8.2、克隆远程仓库

git是分布式版本控制系统,我们可以建立一个公开的仓库,可以让所有人都能从这个仓库克隆作为他们自己的分支,来帮助开源项目维护。
还是以github为例,首先在github上创建一个项目,叫。
我们打开,将目录切换到,输入命令。

远程仓库地址可以从github上的gittest仓库信息中看到。这样在github上创建的远程仓库就被克隆到本地了,在当前目录中可以看到多了一个目录,仓库中的所有文件也同步到本地了。

  • 查看远程仓库信息

  • 推送分支

    origin 为远程仓库在本地默认的名字(就是对应远程仓库的地址),master 为本地分支名,此处为主分支(也是推送到远程仓库的主分支上)。一般情况需保持主分支与远程仓库同步就行。
    如果多人都在同一个分支下工作的话,当一个人push后,另外一个人再push的话就会失败,必须先将分支上最新的代码pull下来,解决冲突后,再push。

  • 抓取分支

    pull之前必须设置本地分支与远程分支的对应关系,可以使用来将本地分支dev与远程仓库
    分支dev的关系关联起来。

8.3、将本地仓库关联到远程仓库

  • 我们还是先要在github上创建一个新的仓库,使用命令,就将本地仓库与远程仓库之间建立了关联。

    origin 为远程仓库在本地默认的名字。

  • 使用,将本地主分支与远程仓库主分支建立远程关联。

  • 使用拉取远程仓库代码。

  • 使用来推送本地代码到远程仓库。

    最后的master表示要推送的本地分支名。

8.4、同步github账户fork的代码

github中曾经fork的代码不会自动与原作者保持同步。需要手动操作。
假设你的github中fork的仓库地址为:
原始作者的仓库地址为:

  • 关联原始作者的仓库

  • 抓取原始作者仓库修改的文件

  • 切换到本地主分支

  • 合并远程的原始作者主分支

  • 推送到自己的远程仓库

9、分支操作

平时开发的时候,新开一个项目,但又不想把还没完成的代码提交到主分支上。这时我们可以创建一个新的分支,来提交我们的代码,这样不用担心代码因未提交可能丢失,也不会影响主分支的功能。等所有功能完成后,还可将新建的分支代码合并到主分支上,并删除新建的分支。

  1. 新建分支 dev

  2. 切换分支(切换到dev分支)

    1、2 两步可用直接达到。

    如果需要将远程的 dev分支同步到本地 dev分支,需要先使用
    设置关联,然后使用
    拉取就可以了。

  3. 查看当前分支

    从远程仓库克隆时,默认在本地只能看到主分支,使用创建即可。

    使用可以同时查看远程的所有分支。

    使用可以同时查看本地和远程的所有分支。

    使用就会自动将本地 dev分支推送到远程的 dev分支上。

  4. 合并分支(将dev分支合并到当前分支)

  5. 删除分支

    是删除本地分支。

    如果要删除远程分支的话,使用

如果新建分支后,主分支一直没有提交新的操作,那么合并的时候,基本没有什么顾虑。但是新建分支后,主分支上也在继续开发,那么合并分支的时候,如果两个分支都对同一个文件的相同位置做了不同的修改,就会提示产生冲突,产生冲突后,可以用查看冲突文件,git会在文件中以与与来标注不同分支修改的内容,我们必须手动去掉这些标注来解决冲突后再提交就可以了。冲突解决后才能删除新建的分支。

  • 查看分支合并图

如果当前代码已经写了一点,但不想提交到分支上,临时想切换到另一个分支分析点东西,可以使用储存工作现场。

  • 保存工作现场
  • 查看保存的工作现场
  • 恢复工作现场(会自动删除保存的工作现场记录)
  • 恢复指定的工作现场(不会自动删除保存的工作现场记录)
  • 删除保存的工作现场记录

10、标签操作

标签相当于仓库的一个快照。不过标签是针对当前分支的快照。

  • 创建标签
    (v1.0为标签名)

    标签默认是打在最新的提交的那个时间点的,如果在以前的某次提交忘打的话,可以使用查看那次的提交标识,使用(3628164为版本标识)。
    可以使用-a 指定标签名,-m 指定标签说明文字。
    如,这样的标签称为“附注标签“,与“轻量标签”对应。

  • 查看所有标签

  • 查看某个标签信息

  • 删除标签

  • 切换到标签状态

  • 推送标签
    通常的时候是不会将标签也提交到git服务器上的,需要另外手动操作。

    如果使用的github,可以去网站看看有没有推送成功。

    使用可以将本地所有未提交的标签一次性提交到git服务器。

  • 删除远程服务器标签
    先删除本地标签:。
    再提交到远程:,为固定格式,后面跟标签名。

11、界面操作软件

如果使用过TortoiseSVN,比较习惯界面操作的话,可以使用TortoiseGit,TortoiseGit是开源的客户端,只支持Windows。
TortoiseGit 只是一个界面程序壳,运行必须依赖核心Git客户端,比如msysgit。
下载地址:https://download.tortoisegit.org/tgit/。

12、设置git代理

如果 url被墙的话,就需要设置 git代理了。

  • 设置 git代理

    localhost:1080为代理服务器 ip、端口。
    如果需要用户名和密码:

  • 取消 git代理

文章知识点与官方知识档案匹配,可进一步学习相关知识Git技能树首页概览2890 人正在系统学习中

来源:tipsyeyes

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年10月3日
下一篇 2017年10月3日

相关推荐