Git的简单使用

1.什么是Git?

一种分布式的软件配置管理工具。

2.目录结构

假如现在有一个工程被git管理,它分为三个部分:本地工作区,本地版本库(CMDB)的远程版本库。其中本地版本库有一个暂存区。

本地工作区就是你的工程所对应的本地文件夹

本地版本库是工作区(本地文件夹)下的.git隐藏文件夹。

远程版本库是你的工程在网络上的备份。

3.文件

文件时Git的基本配置项SCI(软件中发生变化的基本单元)

当一个文件被创建或者修改时,它与本地版本库中的相应文件不一样了,此时它处于“已修改”状态。

已修改的文件,可以通过git add命令,添加到暂存区,此时它处于“已暂存”状态。

已暂存的文件,可以通过git commit,把暂存区的文件汇总成一个commit,然后提交到本地版本库,此时它处于“已提交“”状态。

也可以通过git commit -a命令将已修改的文件提交commit。

4.操作

git status可以查看当前工作目录的状态。

显示出来的文件总共有三种状态分别是

     1.已添加至暂存区,未提交的(add后未commit的文件)

     2.已修改,未暂存的

     3.为追踪到的文件

git diff比较暂存区和工作区的文件的差异

git diff HEAD可以查看某个commit中的文件和当前工作区中的文件的差别

想要把本地的提交记录提交到远程,可以执行git push命令。

如果要把远程的提交记录拉回到本地,可以执行git fetch命令。

如果要把远程的工程下载到本地,可以执行git clone命令

如果要把远程工程拉到本地,并且立即和自己的本地版本合并,可以用git pull命令。

要撤销本地工作区到暂存区的更改,可以用git reset<file>

要撤销commit,可以用git reset<commit>

5.分支

使用分支,相当于从现有的版本线上又分出来一条,可以加一些和以前不一样的版本分别管理,还可以合并,非常方便。

一次只能在一个分支上工作,要跳转分支,需要git checkout <branch>

要创建新分支,可以用git checkout -b <branch>

如果两个分支有共同的祖先,在某个时刻可以把这个有共同祖先的分支和自己合并,命令是git merge <branch>

6.总结(github官方的cheatsheet)

________________________________________________________

安装Git

GitHub提供了包含图形界面的桌面客户端,通过客户端可以完成大部分常用的仓库操作,同时可以自动更新Git的命令行版本,以适应新的场景。

GitHub Desktop

https://desktop.github.com/

GitHub的Linux和POSIX版本可以在官方的Git SCM网站上获取。

Git 全平台版

http://git-scm.com

配置工具

对所有本地仓库的用户信息进行配置

$ git config --global user.name "[name]"

对你的commit操作设置关联的用户名

$ git config --global user.email "[email address]"

对你的commit操作设置关联的邮箱地址

创建仓库

创建一个新的仓库或者从一个现有的链接获取仓库

$ git init [project-name]

创建一个本地的仓库,并设置名字

$ git clone [url]

下载一个项目以及它所有的版本历史

更改

检查已有的编辑并执行commit操作

$ git status

列出所有新建或者更改的文件,这些文件需要被commit

$ git diff

展示那些没有暂存文件的差异

$ git add [file]

将文件进行快照处理用于版本控制

$ git diff --staged

展示暂存文件与最新版本之间的不同

$ git reset [file]

将文件移除暂存区,但是保留其内容

$ git commit -m"[descriptive message]"

将文件快照永久地记录在版本历史中

批量更改

命名一系列commit以及合并已完成的工作

$ git branch

列出当前仓库中所有的本地分支

$ git branch [branch-name]

建立一个新分支

$ git checkout [branch-name]

切换到一个特定的分支上并更新工作目录

$ git merge [branch-name]

合并特定分支的历史到当前分支

$ git branch -d [branch-name]

删除特定的分支

 

重构文件

重定位并移除版本文件

$ git rm [file]

从工作目录中删除文件并暂存此删除

$ git rm --cached [file]

从版本控制中移除文件,并在本地保存文件

$ git mv [file-original] [file-renamed]

改变文件名并准备commit

停止追踪

不包含临时文件和路径

*.log
build/
temp-*

文本文件.gitignore可以防止一些特定的文件进入到版本控制中

$ git ls-files --others --ignored --exclude-standard

列出所有项目中忽略的文件

保存临时更改

暂存一些未完成的更改

$ git stash

临时存储所有修改的已跟踪文件

$ git stash pop

重新存储所有最近被stash的文件

$ git stash list

列出所有被stash的更改

$ git stash drop

放弃所有最近stash的更改

查阅历史

浏览并检查项目文件的发展

$ git log

列出当前分支的版本历史

$ git log --follow [file]

列出文件的版本历史,包括重命名

$ git diff [first-branch]...[second-branch]

展示两个不同分支之间的差异

$ git show [commit]

输出元数据以及特定commit的内容变化

撤销commit

擦除错误并更改历史

$ git reset [commit]

撤销所有[commit]后的的commit,在本地保存更改

$ git reset --hard [commit]

放弃所有更改并回到某个特定的commit

同步更改

注册一个远程的链接,交换仓库的版本历史

$ git fetch [remote]

下载远程仓库的所有历史

$ git merge [remote]/[branch]

合并远程分支到当前本地分支

$ git push [remote] [branch]

上传所有本地分支commit到GitHub上

$ git pull

下载书签历史并合并更改

原文地址:https://www.cnblogs.com/hyfer/p/11079430.html