首页 » PHP教程 » gitcphp技巧_git运用说明全是干货

gitcphp技巧_git运用说明全是干货

duote123 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

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

Git 与常用的版本掌握工具 CVS, Subversion 平分歧,它采取了分布式版本库的办法,不必做事器端软件支持。

gitcphp技巧_git运用说明全是干货

Git和其他版本掌握系统如SVN的一个不同之处便是有暂存区的观点

干系专业名词

gitcphp技巧_git运用说明全是干货
(图片来自网络侵删)

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

标签:

相关文章