本文已参与掘金创作者训练营第三期「话题写作」赛道,详情查看:掘力计划|创作者训练营第三期正在进行,「写」出个人影响力
1. 安装
Windows 平台上安装
安装包下载地址:gitforwindows.org/
官网慢,可以用国内的镜像:npm.taobao.org/mirrors/git…。
Mac 平台上安装
下载地址为:
安装界面如下所示:
Git 配置
Git 有个叫 git config 的工具,专门用来配置或读取相应的工作环境变量。
这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
/etc/gitconfig
文件:系统中对所有用户都普遍适用的配置。若使用git config
时用--system
选项,读写的就是这个文件。~/.gitconfig
文件:用户目录下的配置文件只适用于该用户。若使用git config
时用--global
选项,读写的就是这个文件。- 当前项目的 Git 目录中的配置文件(也就是工作目录中的
.git/config
文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config
里的配置会覆盖/etc/gitconfig
中的同名变量。
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 HOME 变量指定的目录,一般都是 C:\Documents and Settings\USER。
此外,Git 还会尝试找寻 /etc/gitconfig 文件,看 Git 装在什么目录,就以此作为根目录定位。
用户信息
配置个人的用户名称和电子邮件地址:
$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。
如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
2. 工作流
一般工作流程如下:
- 克隆 Git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
3. 工作区、暂存区和版本库
- 工作区: 就是你在电脑里能看到的目录。
- 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
4. 创建仓库
初始化
创建新文件夹,打开,然后执行:
$ git init
克隆
执行如下命令以创建一个本地仓库的克隆版本:
$ git clone /path/to/repository
如果是远程服务器上的仓库,你的命令会是这样子:
$ git clone username@host:/path/to/repository
5. 基本操作
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
一个简单的操作步骤:
$ git add <filename> / *
$ git commit -m "改动信息"
$ git pull
$ git push
6. 分支
创建分支:
$ git branch <branchname>
切换分支:
$ git checkout <branchname>
合并分支:
$ git merge
温馨提示:合并分支常常会遇到冲突,需要手动去修改它。
列出分支:
$ git branch <branchname>
删除分支命令:
$ git branch -d <branchname>
7. 标签和提交历史
比如说,我们想为我们的项目发布一个"1.0"版本:
$ git tag -a v1.0
Git 提交历史一般常用两个命令:
- git log - 查看历史提交记录。
- git blame - 以列表形式查看指定文件的历史修改记录。
8. 常用连贯作业
// 回退到指定版本
$ git reset --hard <某次 commit 的 ID>
$ git push -f -u origin <分支名称>
// 回退到指定版本
$ git checkout -b <分支名称>
$ git push origin <分支名称>
$ git push --set-upstream origin <分支名称>
// 分支 1 合并到分支 2
$ git checkout <分支 2 >
$ git merge <分支 1 >
// 删除分支
$ git branch -D <分支名称>
$ git push origin --delete <分支名称>