git视频笔记

配置git

git config --global user.name fcj
git config --global user.email fcj@test.com
git config --global color.ui true
git config --list
vim ~/.gitconfig

创建repository

git init
git clone https://github.com/kennethreitz/requests.git

添加提交文件

git status
git add code.py
git commit -m 'init commit'
git三个环境:working directory(工作区)、staging area(cache或index)、history

查看git状态

git忽略文件:.gitignore
git status -s
  [][]表示staging area和working directory的改变
  [][M]本地修改没add
  [M][]add后没有commit
  [M][M]上次add没有commit,且本地已再次修改
git add:从working directory到staging area
git commit:从staging area到history

查看文件差别

git diff:比较working directory和staging area
git diff --staged:比较staging area和history
git diff HEAD:比较working directory和history
简化git diff信息:git diff --stat

撤销误操作

git reset:从history恢复到staging area
git checkout:从staging area恢复到working directory
git checkout HEAD:从history恢复到working directory、且恢复staging area
git commit -am 'add commit':从working directory同时add到staging area,并提交到history:
working directory和staging area:git add <===> git diff <===> git checkout
staging area和history:git commit <===> git diff --staged <===> git reset
history和working directory:git commit -am <===> git diff HEAD <===> git checkout HEAD

删除和重命名文件

git rm old.py:从本地和staging area删除文件
git rm --cached code.py:从staging area删除文件,但保留本地文件
git mv code.py code.go:重命名
  等价于:
  git rm --cached code.py
  mv code.py code.go
  git add code.go

暂存工作区

git stash:最新修改放入抽屉
git stash list:查看抽屉内容
git stash pop:从抽屉中恢复

commit对象

git log
git log --oneline
三种对象:commit、tree、blob
每个对象都有哈希值
git cat-file -t HEAD
git cat-file -p HEAD
git cat-file -t 对象哈希:查看对象类型
git cat-file -p 对象哈希:查看对象内容

tree-ish表达式

git rev-parse HEAD
git rev-parse HEAD~
git rev-parse HEAD~4
git rev-parse master
git rev-parse master~
git rev-parse master~4:定位到commit
git cat-file -p master~4
git rev-parse master~4^{tree}:定位到commit下的tree
git rev-parse HEAD~4:code.py:定位到文件
git cat-file -p HEAD~4:code.py
git show HEAD~4:code.py
  git show <===> git cat-file -p

创建和删除分支

git branch:列出所有分支
git branch tryidea:创建分支
git checkout tryidea:切换分支
git checkout master:切换回master
git branch -d tryidea:删除分支

合并分支

git checkout -b tryidea:创建并立即切换分支
分支提交后必须合并才可以删除
git checkout master
git merge tryidea
  Fast-forward
git branch -d tryidea
3-way merge:master也发生提交时

视频地址

深入理解GIT
http://edu.51cto.com/course/1838.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为原文太长超出字数,Lesson 3 就放在另一篇文章里 How to Use Git and GitHub 标...
    赤乐君阅读 5,260评论 1 5
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,557评论 1 26
  • 做产品多年,在自(产)吹(品)自(包)擂(装)时,不止一次以“互联网+”为噱头来吸引眼球,连篇累牍的大话说得自己...
    舞崖阅读 921评论 0 51
  • 水是生命之源,地球表面积百分之七十被水所覆盖,人体含水量大概是70%,离开了水,人将无法生存。 人...
    桂花树下阅读 310评论 0 1
  • 大森很少看法国电影,更少看法国新浪潮大师们的作品,但最近偶然遇上一部电影,便翻来覆去看了三两遍:特吕弗的《祖与占》...
    曹大森阅读 493评论 0 1