学习git相关,看过的文章

工作流: 你的本地仓库有git维护的三棵”树”组成,第一个是你的 工作目录,它持有实际文件;第二个是 缓存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,指向你最近一次提交后的结果。

git init 和git init –bare (裸仓库)

git add 1.txt 添加

git rm –cached 1.txt 删除

git status 显示git add 和git commit 的进展,还包括了添加缓存和移除缓存的相关指令。

git log 显示已提交的快照,只作用于提交的项目历史;

git log -n 限制提交的数量

git log –oneline 将每个提交压缩到一行

git log –stat 除了显示git log 信息之外,还包含哪些文件被更改了,以及每个文件的相对的增删行数。

git log -p 显示代表每个提交的一堆信息,显示每个提交全部的差异(diff),这也是项目历史汇总个最详细的视图。

commit 2d749ca641a72cd808de493ed95fd8274cc6bd6d

Author: Wuluming 540781997@qq.com

NOTE: commit 后面40个字的字符串是提交的内容的SHA-1校验总和(checksum).他有两个作用:一是保证提交的正确性————如果它被损坏了,提交会生成一个不同的校验总和;第二,它是提交的唯一的标示ID。

git log –oneline master..some-feature 显示了在some-feature分支而不在master分支的所有提交的概览

wlmmatoMacBook-Air:my-project2 wlm$ git log –oneline

2d749ca add 2.txt

08a2120 modify 1.txt

f078fbb add change

wlmmatoMacBook-Air:my-project2 wlm$ git checkout f078fbb 1.txt //用git checkout来获取它的一个旧版本

wlmmatoMacBook-Air:my-project2 wlm$ git checkout HEAD 1.txt //旧的文件版本会显示为『需要提交的更改』,允许你回滚到文件之前的版本。如果你不想保留旧的版本,你可以用下面的命令检出到最近的版本

git checkout截图

git revert 用来撤销一个已经提交的快照

git revert 和 git reset 相比:

NOTE: 首先,它不会改变项目历史,对那些已经发布到共享仓库的提交来说这是一个安全的操作.其次,git revert可以针对历史中任何一个提交,而git reset只能从当前提交向前回溯。比如,你想用git reset重设一个旧的提交,你不得不移除那个提交后的所有提交,再移除那个提交,然后重新提交后面的所有提交。不用说,这并不是一个优雅的回滚方案。
重设完全地移除了一堆更改,而撤销保留了原来的更改,用一个新的提交来实现撤销.

git commit –amend 修复最新提交的快捷方式,允许你讲川村的修改和之前的提交合并到一起,而不是提交一个全新的快照;他还可以简单的编辑上一次提交的信息而不改变快照。

git rebase 主要目的是为了保持一个线性的项目历史

git rebase -i master

git remote 允许床架、查看、删除和其他仓库之间的连接

NOTE 仓库的URL Git支持多种方式来引用一个远程仓库。其中两种最简单的方式便是HTTP和SSH协议。HTTP是允许匿名、只读访问仓库的简易方式。但是,直接将提交推送到一个HTTP地址一般是不可行的(你不太可能希望匿名用户也能随意推送)。如果希望对仓库进行读写,你需要使用SSH协议,Git支持开箱即用的SSH认证连接.

git fetch

git merge

git pull

git push

四中工作流

1. 中心化的工作流
2. 基于功能分支的工作流
3. Gitflow工作流
4. Fork工作流
  1. 原文章连接