git 学习笔记

git 的学习笔记

Posted by 敬方 on April 12, 2019

我的Git学习笔记

写作这篇文章是为了自己学习和使用git工具,防止自己遗忘,方便以后复习观看。


参考链接git book CN;廖雪峰的git教程; 图解Git; Git的奇技淫巧;

前言


git 作为一个基本的管理工具,和SVN的最大区别在于他是分布式的。

Git 原理

Git将文件区域分为工作目录(workspace)、暂存区(Index)、首部(HEAD)区域;工作目录是持有实际文件;暂存区(Index)临时保存你的改动;最后HEAD指向你最后一次提交的结果。

Git 基础操作(git - 简明指南)

一个git 代码管理的生命周期在于:创建-变更文件-添加HEAD-远程提交。

  1. git 仓库的创建
    • git init: 命令初始化git管理仓库
    • git clone /path/to/repository: 创建本地的一个clone副本;
    • git clone username@host:/path/to/repository: 从远端服务器上创建副本
  2. 文件变更(将文件从工作区提交到暂存区)
    • git add <filename> :添加文件
    • git add * : 添加所有变更
    • git add . : 添加当前文件夹下所有变更
  3. 将文件添加到HEAD
    • git commit -m "xxxx": 将变更添加到HEAD区域;
  4. 远程提交:将本地修改提交到远端;(可以在git 中设置simple sitting 似的直接git pull 推送到远端)
    • git push origin <分支名称>/master: 将文件推送到其它远端。
    • git remote add origin <server> : 将文件推送到服务器上。 git 作为分布式代码管理工具,有另外一个重要功能就是分支管理:主要涉及到git 分支的创建、合并、销毁。

  1. 分支创建与切换
    • git checkout -b <分支名称>;创建分支,并且切换回去
    • git checkout master : 切换到主分支;
    • git branch -d <分支名称> : 删除分支
    • git git push origin <分支名称> : 将分支推送到远端
  2. 更新与合并
    • git pull: 从远端更新代码。但是需要注意,当远端代码与当前代码同时存在修改状况时,需要先将当前工作区域中的修改提交commit 但是不推荐,因为后期需要处理分支之间的冲突;
    • git merge <分支名称> : 要合并其他分支到你的当前分支(例如 master); 注意:在这两种情况下,git 会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:git add
  3. 冲突处理;在合并之前需要进行其它处理方便,我们处理冲突
    • git diff <source_branch> <target_branch> : 查看分支差异;