我的Git学习笔记
写作这篇文章是为了自己学习和使用git工具,防止自己遗忘,方便以后复习观看。
参考链接:git book CN;廖雪峰的git教程; 图解Git; Git的奇技淫巧;
前言
git 作为一个基本的管理工具,和SVN的最大区别在于他是分布式的。
Git 原理
Git将文件区域分为工作目录(workspace)、暂存区(Index)、首部(HEAD)区域;工作目录是持有实际文件;暂存区(Index)临时保存你的改动;最后HEAD指向你最后一次提交的结果。
Git 基础操作(git - 简明指南)
一个git 代码管理的生命周期在于:创建-变更文件-添加HEAD-远程提交。
- git 仓库的创建
-
git init
: 命令初始化git管理仓库 -
git clone /path/to/repository
: 创建本地的一个clone副本; -
git clone username@host:/path/to/repository
: 从远端服务器上创建副本
-
- 文件变更(将文件从工作区提交到暂存区)
-
git add <filename>
:添加文件 -
git add *
: 添加所有变更 -
git add .
: 添加当前文件夹下所有变更
-
- 将文件添加到HEAD
-
git commit -m "xxxx"
: 将变更添加到HEAD区域;
-
- 远程提交:将本地修改提交到远端;(可以在git 中设置simple sitting 似的直接git pull 推送到远端)
-
git push origin <分支名称>/master
: 将文件推送到其它远端。 -
git remote add origin <server>
: 将文件推送到服务器上。 git 作为分布式代码管理工具,有另外一个重要功能就是分支管理:主要涉及到git 分支的创建、合并、销毁。
-
- 分支创建与切换
-
git checkout -b <分支名称>
;创建分支,并且切换回去 -
git checkout master
: 切换到主分支; -
git branch -d <分支名称>
: 删除分支 -
git git push origin <分支名称>
: 将分支推送到远端
-
- 更新与合并
-
git pull
: 从远端更新代码。但是需要注意,当远端代码与当前代码同时存在修改状况时,需要先将当前工作区域中的修改提交commit 但是不推荐,因为后期需要处理分支之间的冲突; -
git merge <分支名称>
: 要合并其他分支到你的当前分支(例如 master); 注意:在这两种情况下,git 会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:git add
-
- 冲突处理;在合并之前需要进行其它处理方便,我们处理冲突
-
git diff <source_branch> <target_branch>
: 查看分支差异;
-