入门Git,看这篇就够了!纯干货分享

Git-基础

git使用的是一种分布式的版本控制结构,通过记录文件快照来实现。

入门Git,看这篇就够了!纯干货分享_第1张图片

  • 运行前配置

配置用户信息(必须)

入门Git,看这篇就够了!纯干货分享_第2张图片

git config --global user.name "xxx"
git config --global user.email [email protected]

配置用户名称和电子邮箱,git每次提交的时候都会引用这两条信息,说明是谁提交了代码。

默认编辑器

git config --global core.editor emacs

差异分析工具

git config --global merge.tool vimdiff

查看配置信息

git config --list

获取帮助

git help <verb>

例如,config 命令可以使用 git help config

基础

获取仓库

  • 创建新仓库: git init

初始化后,当前目录下就会多出一个.git的目录,所有git需要的数据和资源都存放在这个目录中。

git add *.java
git commit -m "init project"
  • 克隆仓库: git clone
git clone git://github.com/test/gittest.git

这个命令会将线上仓库克隆到本地,默名称是目录名,如果要更改目录名称可以追加在后面。

git clone git://github.com/test/gittest.git newname

检查文件状态

git status

查看文件变化

  • 暂存前: git diff
  • 暂存后: git diff --cached

跳过暂存区 -a

git commit -a -m "跳过暂存区提交"

移除文件

git rm 文件名

如果只想删除仓库中的文件(也会从暂存区移除)但任然保留工作区文件,可以使用git rm –cached 文件名(比如删除不小心纳入仓库的需要忽略的文件)

移动文件

git mv file_from file_to

查看提交历史

  • 显式文件提交的内容差异: git log -p -2 //-2表示仅仅显式最近的两次更新
  • 显式文件提交的内容差异(单词层面比较):git log -p -word-diff -2

修改最后一次提交
有时候我们提交完了,但是发现漏掉了几个文件,或者提交信息写错了,想要撤销刚才的提交,可以使用–amend 追加提交暂存区

git commit --amend

取消暂存的文件

git reset HEAD 暂存区文件名

取消对文件的修改

git checkout -- 已经修改的文件名

查看远程仓库

git remote -v

添加远程仓库
入门Git,看这篇就够了!纯干货分享_第3张图片

git remote add [shortname] [url]

修改远程仓库

git remote set-url [shortname] [url]

或者先删除原有仓库地址再添加新地址

从远程仓库抓取数据

git fetch [remote-name]

推送数据到远程仓库

git push origin master

查看远程仓库信息

git remote show origin

远程仓库删除和重命名

删除远程仓库可以使用

git remote rm

分支

假设此时我们的工作目录有三个文件,把它们暂存后提交。

第一步:暂存 git使用blob类型的对象存储了这些快照
第二步:提交

git add *
git commit -m "commit three files"

此时git仓库中有5个对象(三个文件快照内容的blob对象,一个记录着目录树内容及其各个文件对应blob对象索引的tree对象,一个指向tree对象的索引和其他提交信息数据的commit对象)
入门Git,看这篇就够了!纯干货分享_第4张图片

第三步:多做几次修改再提交 后一次提交的commit对象会指向前一次提交的commit对象
入门Git,看这篇就够了!纯干货分享_第5张图片

git中的分支实际上仅仅是一个指向commit对象的可变指针,git会使用master为分支的默认名字,每次提交后master(当前分支)都会自动向前移动。
入门Git,看这篇就够了!纯干货分享_第6张图片

第四步:创建一个新分支

$ git branch testing

入门Git,看这篇就够了!纯干货分享_第7张图片

那么git是如何知道你在哪个分支上工作呢?它保留着一个名为HEAD的特别指针。
入门Git,看这篇就够了!纯干货分享_第8张图片

第五步:切换分支

$ git checkout testing

这样HEAD就指向了testing分支。

分支合并
使用命令 git merge 来合并分支
入门Git,看这篇就够了!纯干货分享_第9张图片

$ git checkout master
$ git merge hotfix

Fast-forward
合并的时候出现了"Fast-forward"提示,因为此时只需要简单的将指针右移,这种合并称为快进(Fast Forward)
再来看一种情况:
入门Git,看这篇就够了!纯干货分享_第10张图片

分支管理
git branch 命令可以列出当前所有分支清单, 当前分支带 * 号

  • 删除本地分支 git branch -d
  • 删除远程分支 git push --delete
git branch -d work
git push origin --delete work

工作流程

Git flow

该流程中项目存在两个长期分支。

主分支: master (存放对外发布的版本,任何时候在这个分支拿到的,都是稳定的分布版) 开发分支: develop (用于日常开发,存放最新的开发版)

其次,项目存在三种短期分支。

功能分支(feature branch) 补丁分支(hotfix branch) 预发分支(release branch)

一旦完成开发,它们就会被合并进develop或master,然后被删除。

入门Git,看这篇就够了!纯干货分享_第11张图片

参考:阮一峰 的博客Git 工作流程 Git分支管理策略

给大家一个开源仓库用来练手Git:

https://gitee.com/ZhongBangKeJi/CRMEB

你可能感兴趣的:(学习笔记)