Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

git基础

介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

安装配置

win端下载:https://gitforwindows.org/
linux端下载:https://git-scm.com/download/linux
配置个人信息

1
2
$ git config --global user.name "用户名"
$ git config --global user.email 邮箱

要检查已有的配置信息,可以使用 git config --list命令。

创建克隆仓库

使用当前目录作为 Git 仓库,我们只需使它初始化。

1
git init

从现有 Git 仓库中克隆项目

1
2
3
4
5
//克隆仓库的命令格式为:
git clone <git仓库>

//从远程仓库中克隆
git clone git:远程仓库地址

添加、提交与推送

本地仓库由 git 维护的三棵“树”组成。第一个是工作目录,它持有实际文件。
第二个是 暂存区(Index),它像个缓存区域,临时保存改动。

1
2
//将文件名添加到暂存区
git add <文件名>

HEAD,它指向最后一次提交的结果。

1
2
//将暂存区中的文件提交
git commit -m "代码提交介绍"

改动现在已经在本地仓库的 HEAD 中了,还需要将这些改动提交到远端仓库,但在那之前需要先将其与远端仓库建立关联。

1
2
3
4
5
//生成与远程仓库连接的ssh秘钥,将 id_rsa.pub中的key复制,与远端仓库关联
ssh-keygen -t rsa -C "远端git仓库邮箱"

//将本地仓库的 HEAD 中改动提交到远端仓库对应分支
git push origin 对应分支

分支、更新与合并

分支是用来将特性开发绝缘开来的。在创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。

1
2
3
4
5
6
7
8
9
10
11
//创建一个叫做“feature_x”的分支,并切换过去:
git checkout -b feature_x

//切换回主分支:
git checkout master

//再把新建的分支删掉:
git branch -d feature_x

//除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin <branch>

要更新你的本地仓库至最新改动,执行:

1
git pull

以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:

1
git merge <branch>

在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:

1
git add <filename>

在合并改动之前,你可以使用如下命令预览差异:

1
git diff <source_branch> <target_branch>

参考资料

git菜鸟教程

评论