Git 命令清单

简介 Introduction

Git 是一个分布式版本控制系统,最初由 Linus Torvalds 创作。Git 是用于 Linux 内核开发的版本控制工具,与 CVSSubversion 等版本控制工具不同,它采用了分布式版本库的做法,不需要服务器端软件,就可以运行版本控制、使得源代码的发布和交流变得极其方便。Git 的速度很快,这对于 Linux 内核这样的大项目来说非常重要。Git 最为出色的是它的合并追踪(Merge Tracing)功能。原本 Git 只适用于 Linux/Unix 平台,但在 Windows 平台下的使用也已经相当成熟。


Git 的三种状态和四个区域

三种状态

  • 已提交(committed)
  • 已修改(modified)
  • 已暂存(staged)

刚开始编辑文件时,文件处于**已修改(modified)**状态,文件在工作目录。

修改完了文件,执行git add ,这个时候文件就变为**已暂存(staged)**状态,文件进入暂存区,内容被保存到 Git 数据库中。

然后执行git commit,文件就变为**已提交(committed)**状态,创建了一个提交记录保存到了Git仓库。


四个区域

  • 工作区:工作区是当克隆项目到本地后,项目所在的文件夹
  • 暂存区:用于存储工作区中添加上来的变更(新增、修改、删除)文件的地方
  • 本地仓库:用于存储本地工作区和暂存区提交上来的变更过的文件的地方
  • 远程仓库:把项目存储在一个地方而不是某个人的电脑上,以便多人协同工作。

Git 常用命令

配置相关

git config --list                                	#显示git配置
git config -e [--global]                         	#编辑配置文件
git config [--global] user.name "[name]"         	#设置代码提交时的用户名
git config [--global] user.email "[email address]" #设置代码提交时的邮箱

代码库相关

git init          #在当前目录下新建一个代码库
git clone [url]   #从目标地址下载一个项目

增删文件相关

git add [file]                        #把指定文件添加到暂存区
git add [dir]                         #把指定目录添加到暂存区
git add *                             #把当前目录的所有文件添加到暂存区
git rm [file]                         #删除工作区文件,并将这次删除放入暂存区
git mv [file-original] [file-renamed] #改名文件,并将其放入暂存区

提交相关

git commit [file] -m [message]       #提交暂存区指定文件到仓库
git commit -m [message]              #提交暂存区到仓库
git commit -v                        #提交时显示所有信息差异
git commit -a                        #提交工作区自上次提交之后的变化,直接到仓库区
git commit -amend [file]             #重做上一次提交,并包括指定文件的新变化

标签相关

git tag                         #列出所有标签
git tag [tag]                   #在当前提交新建一个标签
git tag [tag] [commit]          #在指定提交新建一个标签
git show [tag]                  #查看标签信息
git push [remote] [tag]         #提交指定标签
git push [remote] --tags        #提交所有标签
git tag -d [tag]                #删除本地标签

查看信息相关

git log                    #显示当前分支的版本历史
git status                 #显示有变更的文件
git log --stat             #显示提交历史,以及每次提交发生变更的文件
git log -S [keyword]       #根据关键词搜索提交历史
git log -p [file]          #显示指定文件的每一次差异
git shortlog -sn           #显示所有提交过的用户
git diff                   #显示工作区和暂存区的差异
git diff --cached [file]   #显示暂存区和上一次提交的差异
git diff [first-branch]...[second-branch] #显示两次提交之间的差异
git show [commit]:[filename] #显示某次提交时,某个文件的内容
git reflog                 #显示当前分支的最近几次提交

分支相关

git branch                  #列出所有本地分支
git branch -r               #列出所有远程分支
git branch -a               #列出所有本地分支和远程分支
git branch [branch-name]    #新建一个分支,但停留在当前分支
git checkout -b [branch]    #新建并切换到该分支
git checkout -              #切换到上一个分支
git merge [branch]          #合并指定分支到当前分支
git branch -d [branch-name] #删除指定分支
git push origin --delete [branch-name] #删除远程分支

远程仓库相关

git remote -v                     #显示所有远程仓库
git remote show [remote]          #显示指定远程仓库的信息
git remote add [shortname] [url]  #增加并命名一个新的远程仓库
git push [remote] [branch]        #上传本地指定分支到远程仓库
git remote add [remote] [url]     #把本地仓库和远程仓库关联
git pull [remote] [branch]        #取远程仓库的内容更新本地仓库
git pull [remote] [branch] --allow-unrelated-histories #强行合并仓库
git fetch [remote]                #下载远程仓库的所有变动

你可能感兴趣的:(git)