`
seandeng888
  • 浏览: 158102 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

配置管理工具GIT之常用命令整理

阅读更多

      本文假定读者对GIT有一定的基础,仅供大家在工作中碰到问题时参考所用。

Git简介

重要的术语

术语

定义

仓库

Repository

一个仓库包括了所有的版本信息、所有的分支和标记信息。

Git中仓库的每份拷贝都是完整的。仓库让你可以从中取得你的工作副本。

分支

Branches

一个分支意味着一个独立的、拥有自己历史信息的代码线(code line)。你可以从已有的代码中生成一个新的分支

,这个分支与剩余的分支完全独立。默认的分支往往是叫master。用户可以选择一个分支,选择一个分支叫做checkout.

标记

Tags

一个标记指的是某个分支某个特定时间点的状态。通过标记,可以很方便的切换到标记时的状态,例如2009125号在testing分支上的代码状态。

提交

Commit

提交代码后,仓库会创建一个新的版本。这个版本可以在后续被重新获得。每次提交都包括作者和提交者,作者和提交者可以是不同的人。

URL

URl用来标识一个仓库的位置

修订

Revision

用来表示代码的一个版本状态。Git通过用SHA1 hash算法表示的id来标识不同的版本。每一个 SHA1 id都是160位长,16进制标识的字符串.最新的版本可以通过HEAD来获取.之前的版本可以通过"HEAD~1"来获取,以此类推。

补丁

指的是一个包含对源代码进行修改的文本文件。你可以将这个文件发送给某人,然后他就可以应用这个补丁到他的本地仓库。

索引

Git 需要将代码的变化显示的与下一次提交进行关联。举个例子,如果你对一个文件继续了修改,然后想将这些修改提交到下一次提交中,你必须将这个文件提交到索引中,通过git add file命令。这样索引可以保存所有变化的快照。

新增的文件总是要显示的添加到索引中来。对于那些之前已经提交过的文件,可以在commit命令中使用-a 选项达到提交到索引的目的。

HEAD指针

Git 是如何知道你当前在哪个分支上工作的呢?它保存着一个名为 HEAD 的特别指针。在 Git 中,它是一个指向你正在工作中的本地分支的指针(当前分支的别名)。

命令大全

配置部分

配置用户名和Email

git config --global user.name "Example Surname"

git config --global user.email "your.email@gmail.com"

# Set default so that all changes are always pushed to the repository

git config --global push.default "matching"

获取Git配置信息

git config --list

配置终端高亮

git config --global color.status auto

git config --global color.branch auto

忽略特定的文件

可以配置Git忽略特定的文件或者是文件夹。这些配置都放在.gitignore文件中。这个文件可以存在于不同的文件夹中,可以包含不同的文件匹配模式。为了让Git忽略bin文件夹,在主目录下放置.gitignore文件,其中内容为bin

同时Git也提供了全局的配置,core.excludesfile

使用.gitkeep来追踪空的文件夹

Git会忽略空的文件夹。如果你想版本控制包括空文件夹,根据惯例会在空文件夹下放置.gitkeep文件。其实对文件名没有特定的要求。一旦一个空文件夹下有文件后,这个文件夹就会在版本控制范围内。

新增部分

创建仓库

git init

添加文件

git add .

提交更改

git commit -m "Initial commit"

git commit -a -m "These are new changes" #将未添加到索引的文件也提交

git add . && git commit -m "message"

添加远端仓库

git remote add origin ../remote-repository.git

提交到远端

git push origin master

创建一个标记

git tag version1.6 -m 'version 1.6'

创建一个新的分支

git branch testing

git branch <branchname> [<start_point>]

 

#创建新的分支,但是不会切换到新建的分支上,如果没有指定start_point,默认#从HEAD指向的提交创建分支。

git push origin develop    #提交分支到远端

切换分支

git checkout testing

git checkout -b myfeature develop    #创建及切换分支

git checkout -b newbranch  [<start_point>]  #b代表branch的意思,newbranch 是新分支的名称,如果没有指定提交点(start_point),默认从HEAD指向的提交创建分支。

合并两个不同分支的结果

#Merge通过所谓的三路合并来完成。分别来自两个分支的最新commit和两个分支的最新公共commit

git merge testing

创建补丁

git branch mybranch

git checkout mybranch

touch test05

echo "New content for test01" >test01

git add .

git commit -a -m "First commit in the branch"

# Create a patch --> git format-patch master

git format-patch origin/master

# This created patch 0001-First-commit-in-the-branch.patch

git checkout master

git apply 0001-First-commit-in-the-branch.patch

git add .

git commit -a -m "Applied patch"

rm 0001-First-commit-in-the-branch.patch

查看部分

查看修改记录(未提交)

git log

查看提交记录

git diff

查看哪些文件做过变动(未提交)

git status

图形查看变更历史

gitk --all

显示已有的远端仓库

git remote

克隆仓库

git clone git@github.com:vogella/gitbook.git

git clone origine

拉取(Pull)更改

git pull origin master

查看文件内容

less test01.txt

列出所有的标记

Git tag

列出所有本地分支,当前所在的分支前带有*

git branch

看远端仓库的分支

git branch -a

修改部分

更正提交的信息

git commit --amend -m "More changes - now correct"

还原更改(已加入索引)

#如果在你的工作副本中,你创建了不想被提交的文件,你可以丢弃它。

git clean -n

git clean –f    # Now delete

提取老版本的代码(把commit的内容复制到index和工作副本中)

git checkout commit_id       #通过commit IDgit log命令可以查看commit _id

git revert commit_id

还原所有未加入到索引的更改

#如果你还未把更改加入到索引中,你也可以直接还原所有的更改

#即使你删除了一个未添加到索引和提交的文件,你也可以还原出这个文件

git checkout test01.txt    # checkout后如果没有commit id号,就是从index中拷贝数据到工作副本

还原HEAD所指commit

#复制HEAD所指committest01文件到index

git reset HEAD test01

#复制indextest01到工作副本中

git checkout test01

还原文件夹

如果你删除了文件夹且尚未提交,可以通过以下命令来恢复这个文件夹。译者注:即使已经提交,也可以还原

git checkout HEAD -- your_dir_to_restore

恢复到一个标记

git checkout <tag_name>

推送(push)一个分支到远端仓库

git push origin testing

git push origin testing testing

git push origin testing:testing

解决合并冲突

git mergetool

合并多个commit为一个

git rebase -i HEAD~7

Rebasing多个分支

#使用mergerebase,最后的源代码是一样的,但是使用rebase产生的commit历史更加的少,而且历史记录看上去更加的线性

git branch testing

git checkout testing

echo "This will be rebased to master" > test01

git commit -a -m "New feature in branch"

git checkout master

git rebase master

删除部分

删除文件

git commit -a -m "removed"

git add -A . && git commit -m "removed"

删除索引中文件(取消删除动作)。

如果你已经添加一个文件到索引中,但是未提交。可以通过git reset file 命令将这个文件从索引中删除

git reset incorrect.txt

删除分支

git branch -d testing

git push origin :branch-name  #把一个空分支push到server上,相当于删除该分支(冒号前面的空格不能少)。

 

删除远端仓库引用    git remote remove origin

 

管理部分

谁创建了或者是修改了这个文件

git blame filename

以上上个commit信息为起点,创建一条新的分支

git checkout -b mybranch master~1

 附录:

1、github生成非对称密钥对命令:ssh-keygen -t rsa -C  your_email@youremail.com 

 

0
0
分享到:
评论

相关推荐

    GIT常用命令整理

    以下是对Git常用命令的详细整理,包括配置、基本操作、分支管理、合并、标签、回滚以及日志和远程操作。 1. **配置操作** - `git config --global user.name "Your Name"`:进行全局配置,设置Git的用户名。 - `...

    git常用命令手册

    本篇文档主要介绍了一套由国外开发者整理的Git常用命令速查表,旨在帮助用户快速掌握并应用Git的基础操作。通过这些简洁明了的命令,即使是Git新手也能迅速上手进行版本控制。 #### 二、创建与初始化 ##### 1. ...

    git常用命令总结

    ### git常用命令总结 #### 一、概述 在日常工作中,`git` 是必不可少的版本控制工具之一。本文档旨在汇总个人使用过程中遇到并频繁使用的 `git` 命令,便于查阅与学习。 #### 二、核心命令及用法详解 **1. git ...

    git文档基本整理

    通过本文档,用户能够了解如何在Linux环境下安装并配置Git服务器,掌握常用的Linux命令以及Git命令,从而更好地利用Git工具管理项目版本。 #### 安装Git及SSH服务 在Ubuntu系统上安装Git及其所需的SSH服务是搭建...

    git整理笔记.docx

    总的来说,Git 是一种强大的工具,它通过提供版本控制和协作功能,帮助开发者有效地管理项目,确保代码的质量和一致性。对于多人协作的项目来说,Git的分布式特性使其成为理想的选择,因为它允许开发者独立工作,并...

    Git 常用命令(B站作者:GeekHour)

    ### Git常用命令详解 #### 一、初始化与配置 **标题和描述中提及的知识点**:本节将详细介绍如何初始化Git仓库以及进行必要的用户配置。 - **初始化设置**: - **创建仓库并配置用户名**:`git config --global ...

    常用命令整理.zip

    以下是对标题"常用命令整理.zip"中涉及的几个主要领域的命令进行详细讲解。 1. **Git** Git是分布式版本控制系统,用于跟踪文件的修改历史。一些常用命令包括: - `git clone &lt;url&gt;`:克隆远程仓库到本地。 - `...

    git知识点整理

    本文将深入探讨Git的基本结构、Git与代码托管平台的关系、常用的Git命令行操作、gitFlow工作流以及如何搭建gitLab服务器。 首先,Git的核心结构由三部分组成:工作区(Working Directory)、暂存区(Index / Stage...

    Git命令大全PDF文档

    ### Git命令大全知识点详解 #### 一、概述 在软件开发过程中,版本控制工具是必...以上就是根据提供的内容整理出的Git常用命令及相关知识点详解。掌握这些命令可以帮助开发者更加高效地管理版本,提高团队协作效率。

    Git权威指南PDF完整版

    18.1 代码管理之殇/ 253 18.1.1 发布分支/ 253 18.1.2 特性分支/ 256 18.1.3 卖主分支/ 257 18.2 分支命令概述/ 258 18.3 “Hello World”开发计划/ 259 18.4 基于特性分支的开发/ 260 18.4.1 创建分支 user1/getopt...

    Git学习笔记.pdf

    在Git中,rebase、merge、cherry-pick和rm是四个常用的操作命令,用于处理版本合并和版本历史的管理。 rebase是用于调整提交历史的一种工具,它会把当前分支上的每个提交都拿到目标分支上重新应用一遍,这样可以...

    Git安装教程,内含安装包

    安装Git只是开始,学习和掌握Git的常用命令同样重要。例如,`git clone`用于克隆远程仓库,`git add`将更改添加到暂存区,`git commit`保存工作到本地仓库,`git push`将本地提交推送到远程仓库,`git pull`则用来...

    Git-2.17.0-64-bit

    在实际开发中,Git的常用命令包括: - `git clone`:克隆远程仓库到本地。 - `git add`:将更改添加到暂存区,准备提交。 - `git commit`:保存工作区的更改到版本库,通常会附带一个提交信息。 - `git push`:将...

    日常运维常用笔记总结(Linux,Mac 命令,开发相关工具以及指令.zip

    这份压缩包"日常运维常用笔记总结(Linux,Mac 命令,开发相关工具以及指令.zip"包含了丰富的资料,主要关注Linux和Mac操作系统中的命令行操作以及与开发相关的工具和指令。下面将对这些知识点进行详细解释。 首先,...

    Linux版本(centOS) git (git-manpages-2.9.5.tar.gz)

    对于Linux系统,尤其是CentOS,安装和使用Git显得尤为重要,因为它是开发者进行源代码管理不可或缺的工具。 Git的手册页(manpages)是Linux系统中用于提供命令行工具详细信息的重要资源。在这个名为"git-manpages-...

    Linux命令整理.rar

    本资料“Linux命令整理.rar”是一个压缩包,包含了对Linux常用命令的详细梳理,特别关注了与Git、Python、PHP和MySQL相关的操作。下面我们将深入探讨这些关键知识点。 1. **Linux基础命令** - **ls**:列出目录...

    12.Git面试真题-43页.pdf

    根据给定文件的信息,我们可以提炼出以下与前端开发相关的Git知识点: ...这些知识点涵盖了Git的基础概念、常用命令以及如何高效地管理版本控制流程等方面的内容,对于前端工程师来说具有较高的实用价值。

    git-2.21.0.rar

    - 也可以通过`git alias`创建快捷方式,简化常用命令。 6. **版本控制最佳实践**: - 使用`--amend`来修正最近的提交,避免频繁提交小改动。 - `git rebase`用于整理历史,保持提交历史的整洁。 - `git stash`...

    Git-Note(Git笔记)

    Git笔记主要涵盖了Git的基本概念、常用命令、工作流程以及一些高级用法。通过学习Git,开发者可以有效地管理代码版本,协同开发,防止数据丢失,并实现代码的版本回溯。 1. Git基本概念: - **仓库(Repository)*...

    Git-cheat-sheet

    Git是世界上最流行的分布式版本..."Git-cheat-sheet"将这些常用命令整理成简洁的参考表,方便快速查阅,是Git初学者和日常开发者的好帮手。在学习过程中,不断实践和理解每个命令的作用,会使你在Git的世界里游刃有余。

Global site tag (gtag.js) - Google Analytics