git版本控制教程视频笔记

@author ninghao.net

git commit --help
git config --list
git config --unset --global user.name
git config --global color.ui true

cat ~/.gitconfig

git log --oneline
git log --oneline -n 10 --graph --decorate --all
git log --oneline --grep='index.html' # 搜索带关键词的log
git log --oneline --after='2015-09-12'
git log --oneline --before='1 week'

git diff
git diff --staged (老版本是 git diff --cached)
git diff master..awesome 对比master和awesome两个分支的不同

git mv before.txt after.txt 等价于git rm before.txt; git add after.txt
git mv old_path/test.txt new_path/test.txt

git rm file.txt # 删除
git checkout HEAD -- file.txt # -- 代表当前分支, 把该文件恢复到最近一次提交的状态,即撤销删除
git checkout HEAD^ -- file.txt # ^代表最近一次提交的上一次提交,^^代表上两次提交,以此类推,所以这就可以回退到任何提交点,哪怕是commit过的

# 把7e03d51这个commit的所有操作都作废/撤销/回退,如果和之后的commit冲突,会提示
git revert 7e03d51

撤销前一次的commit: git reset HEAD~

# 指针重置
#不会影响暂存区。把commit指针回退到该commit,然后再commit,就会覆盖掉它之后的commit
git reset --soft 5c4e669
# 默认。指针回退,然后之后的commit,要重新add才行,因为它们都变成untracked了
git reset --mixed 5c4e669
# 直接把指针回退到这个commit,全帮你做好了,这之后的commit全都没了
git reset --hard 5c4e669

比如master什么都没改,然后创建了一个awesome分支,再合并进master,那么就是fast-forward形式的merge。如果master也有commit,那么再把awesome分支合并进来的时候,就会打开一个vim提示merge信息。

merge如果报冲突,那么打开相应的文件,会发现有冲突块。<<<<< HEAD === 块代表当前分支里的东西,==== >>>> master代表 master分支里的东西。

保存工作进度:(就是要checkout到其他分支,但是目前未commit的文件,不想commit又不想checkout它们)
git stash save '配置、index.php 等等'
这时候,那些编辑过的未commit的文件,就会恢复(好像checkout了)成未编辑过那样

查看保存的工作进度:
git stash list
stash@{0}: On master: test1

查看某个工作进度和当前代码的区别:(结果就像是diff)
git stash show -p stash@{0}

等弄完后,再回来恢复工作进度:
git stash apply stash@{0}

删除工作进度:
git stash drop stash@{0}

# 用git自带的别名设置方法设置checkout命令的alias为co
git config --global alias.co checkout
git co master

# 用系统自带的别名设置方法设置checkout命令的alias为co
vim ~/.bash_profile
添加:
alias gco='git checkout'
source ~/.bash_profile # 用source处理下这个文件就能用了
gco master

 

# 查看远程分支
git branch -r 

# 查看所有分支
git branch -a
 

# 在某次旧的commit上迁出一个分支
git checkout -b justin a9c146a09505837ec03b

# 搜索整个提交历史里面包不包括某个字符串
git log -S字符串

# 查看某个 commit id 所做的变更情况
git show 72406901e369bef41bec4cd8b89112efcfa44972

 

 

转载于:https://my.oschina.net/ecnu/blog/502526

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值