Git 基本操作方法
1. Git 安装方法
方法1:
访问 git官网,下载 git-xx.exe,并进行安装。
方法2:
也可以选择使用 cygwin 中进行安装,详细查看博文 《Cygwin高级篇(1)—工具配置及用法总结》,这样方便统一管理。
2. Git 配置方法
本篇文章以方法2为例。
安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改,指令如下:
git config --global user.name "jllu" git config --global user.email 1234@qq.com
设置 Git 默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim,指令如下:
git config --global core.editor vim
设置 Git 的差异分析工具,指令如下:
git config --global merge.tool vimdiff
如果想要检查你的配置,可以列出所有 Git 当前能找到的配置,指令如下:
git config --list
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,指令如下:
git config user.name
例如:查看自带的版本。
git --version
3. Git 基本概念
我们先来理解下 Git 工作区、暂存区和版本库概念。
(1)工作区(workspace):就是你在电脑里能看到的目录。
(2)暂存区(staging area):英文叫stage
或index
。一般存放在.git
目录下的index
文件中,所以我们把暂存区有时也叫作索引(index
)。
(3)版本库(repository):分为本地仓库(local repository)和远程仓库(remote repository),工作区有一个隐藏目录.git
,这个不算工作区,而是 Git 的版本库
4. Git 常用操作
Git 的工作就是创建和保存你项目的快照及与之后的快照对比。
Git常用的以下6个命令:git clone
、git push
、git add
、git commit
、git checkout
、git pull
。
4.1 创建仓库
指令名称 | 指令说明 |
---|---|
git init | 初始化仓库 |
git add | 添加文件到暂存区 |
git commit | 将暂存区内容添加到仓库中 |
(1)初始化 Git 仓库
初始化一个 Git 仓库,在执行完成初始化指令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。初始化有两种方式:
方式1:
用当前目录作为 Git 仓库,我们只需使它初始化,如下:
git init
方式2:
初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中,如下:
git init demo_repo
(2)增加文件
git add main.c
main.c 文件内容如下:
#include <stdio.h> int main(void) { printf("Hello, world!\n"); return 0; }
(3)提交注释
git commit -m '初始化项目版本'
4.2 克隆仓库
git clone <repo>
如果需要克隆指定的目录,可以用以下格式:
git clone <repo> <directory>
以克隆 grit 工程为例,如下:
git clone git://github.com/schacon/grit.git
4.3 提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
指令名称 | 指令说明 |
---|---|
git add | 添加文件到仓库 |
git status | 查看仓库当前状态,显示有变更的文件 |
git diff | 比较文件的不同,即暂存区和工作区的差异 |
git commit | 提交暂存区到本地仓库 |
git reset | 回退版本 |
git rm | 删除工作区文件 |
git mv | 移动或重命名工作区文件 |
修改 main.c 内容如下:
#include <stdio.h> int main(void) { printf("Hello, Tom!\n"); return 0; }
使用
查看暂存区和工作区的差异,如下:使用 git status 显示有变更的文件,如下:
4.4 提交日志
指令名称 | 指令说明 |
---|---|
git log | 查看历史提交记录 |
git blame <file> | 以列表形式查看指定文件的历史修改记录 |
4.5 远程操作
指令名称 | 指令说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
5. Git 分支管理
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。
5.1 创建分支命令
git branch (branchname)
5.2 切换分支命令
git checkout (branchname)
5.3 列出分支
git branch
5.4 删除分支
git branch -d (branchname)
5.5 分支合并
一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去。
git merge
5.6 合并冲突
合并不仅仅是简单的文件添加、移除的操作,Git 也会合并并修改。
6. 总结
实际应用中,可以不用记忆这些复杂的指令,通过 git 图形客户端即可直观操作,如:TortoiseGit、GitHub Desktop 等。
更多 git 图形客户端,可查看 git 官网。