乐趣区

关于git: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]                #下载近程仓库的所有变动
退出移动版