玖叶教程网

前端编程开发入门

git使用说明-全是干货(git到底怎么用)

简述

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念

相关专业名词

staged changes:已更改的东西

unstaged changes:未更改的东西

stage 暂存区

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的dpdk文件夹就是一个工作区:

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

总结

  • git config

git config -l 查看当前git环境详细配置

git config --system --list 查看系统config,配置文件在git安装目录/etc/gitconfig

git config --global --list 查看当前用户配置,配置文件在~/gitconfig

git config --local --list 查看当前仓库配置信息

git config -e 针对当前仓库

git config -e --global 针对系统上所有仓库

  • git init && clone

git init 在当前目录新建一个仓库

git init [project-name]在一个目录下新建本地仓库

git clone <repo> 从现有的Git仓库中拷贝项目(类似svn checkout)

克隆到指定目录

git clone <repo> <directory> 参数说明:Gitc仓库 directory 本地目录

比如,要克隆Ruby语言的Git代码仓库Git,可以用下面的命令:

git clone git://github.com/schacon/grit.git

执行该命令后,会在当前目录下创建一个名为grit的目录,其中包含一个.git的目录,用于保存下载下来的所有版本记录。

如果要自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:

git clone git://github.com/scharon/grit.git mygrit

  • git diff

git diff HEAD -- ,查看最新本地版本库和工作区所有文件的区别

git diff HEAD --[file-name] 查看最新本地版本库和工作区文件的却别

git diff HEAD^ --[file-name] 查看本地上一个版本和工作区文件的却别

git diff [local branch] origin/[remote branch] 比较本地分支和远程分支的区别

  • git status

git status [file-name] 查看指定文件状态

git status -s 查看所有文件状态

  • git add

git add [file-name1] [file-name2] ... 从工作区添加指定文件到暂存区

git add . 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件

git add -u . u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件

git add -A . A指all,将工作区被修改、被删除、新增的文件都提交到暂存区

  • git commit

git commit -m [message] 将暂存区所有文件添加到本地仓库

git commit [file-name1] [file-name2] -m [message] 将暂存区指定文件添加到本地仓库

git commit -am [massage] 将工作区的内容直接加入本地仓库

git commit --amend 快速将当前文件修改合并到最新的commit,不会产生新的commit。在提交commit后发现还有部分文件修改忘记提交了可以是用该命令

加-m是指直接在后面写上版本的注释,不加-m的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要add加入暂存区。

  • git reset

git reset命令用于回退版本,可以指定退回某一次提交的版本

语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

HEAD 说明:

HEAD 表示当前版本

HEAD^ 上一个版本

HEAD^^ 上上一个版本

HEAD^^^ 上上上一个版本

以此类推...

可以使用 ~数字表示

HEAD~0 表示当前版本

HEAD~1 上一个版本

HEAD^2 上上一个版本

HEAD^3 上上上一个版本

以此类推...

$ git reset HEAD^ # 回退所有内容到上一个版本

$ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本

$ git reset 052e # 回退到指定版本

  • 创建仓库命令

git init 初始化仓库

git clone 拷贝一份远程仓库,也就是下载一个项目

  • 提交与修改

git add 添加文件到暂存区

git status 查看仓库当前的状态,显示有变更的文件

git diff 比较文件的不同,即暂存区和工作区的差异

git commit 提交暂存区到本地仓库

git reset 回退版本

git rm 将文件从暂存区和工作区中删除

git mv 移动或重名工作区文件

  • 提交日志

git log 查看历史提交记录

git blame <file> 以列表式查看指定文件的历史修改记录

  • 远程操作

git remote 远程仓库操作

git fetch 从远程获取代码库

git pull 下载远程代码并合并

git push 上传远程代码并合并

  • 分支管理

git branch (branchname)创建分支命令

git branch 列出分支,没有参数时,git branch 会列出你在本地的分支

git branch -d (branchname) 删除分支命令

git checkout (branchname) 切换分支命令

git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作

git merge 合并分支命令

  • 查看提交历史

git log 查看历史提交记录

git blame <file> 以列表形式查看指定文件的历史修改记录

  • git tag 打标签

(6条消息) git 打tag标签_倒骑驴走着瞧的博客-CSDN博客

达到一个重要的阶段,并希望永远记住那个特别的提交快照,,你可以git tag给它打上标签

  • 打patch

patch 指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是linux系统核心的升级方法之一。

推荐大家使用git的format-patch和am命令进行生成patch和打patch,用此方法获得的patch其实就是commit里提交的code修改以及commit信息

方法一:

git diff > test.patch 生成patch

git diff 文件名 > test.patch 指定某个文件的修改打patch可以使用

git diff --cached > test.patch 已经执行git add 在想打patch可以使用

git apply --check test.patch 查看patch

git apply test.patch 使用patch

对已经提交的代码打patch ,git log 查看那些是需要打ptach的

方法二:

操作步骤:

1、 首先通过git log 查看有那些commit ID,一共提交了多少次

2、 例如一共提交4次,commit A、commit B、commit C、commit D;把第一次或者其他次提交的(不包括第一次提交)都生成patch

git format-patch ID(commit A)

后会生成patch文件,例如00001.patch

3、 在使用git am之前,你要首先git am –abort 一次,来放弃掉以前的am信息。才可以进行一次全新的am

4、 先检查patch文件:git apply –stat 00001.patch

5、 检查能否应用成功:git apply –check 00001.patch

6、 打补丁:git am –signoff < 00001.patch

(使用-s或—signoff选项,可以coomit 信息中加入Signed-off-by信息)

其他用法:

git format-patch 打ptach 这个使用于 已经提交的代码

git format-patch commit_id1 commit_id2 生成patch

git apply --check 系统生成的名字 查看patch

git am 系统生成的名字.patch 应用patch

git format-patch HEAD^     生成最近的1次commit的patch

git format-patch HEAD^^    生成最近的2次commit的patch

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言