git

常用指令

# 切换分支
git checkout test20180626
# 打分支
git branch test20180626
# clone仓库到本地
git clone ssh://git@192.168.41.173:10022/lizhijian/test.git
# 提交tag到远端
git push origin v0.2
# merge tag,v0.1 是tag name,如果合并某个分支,也是一样,直接把tag改成branch名字即可
git merge v0.1
# 只合并某个提交(ab11c720是提交生成的哈希值,可以直接用缩写,merge过程可能冲突,按git status提示解决,然后git cherry-pick --continue)
git cherry-pick ab11c720
# 回退到某个commit
git reset --hard commit_id
git reset commit_id
# 查看某个已经commit的id的diff
git show commit_id
# 暂存区的最新diff
git diff HEAD -- readme.txt
# 已经commit后,看文件跟远端主干/分支的diff
git diff origin/master xxx.py
# 可以丢弃工作区的修改
git checkout -- file
# 可以把暂存区的修改撤销掉(unstage),重新放回工作区
git reset HEAD filename
# Create tag for specific commit
git tag -a tag_name commit_id
# create tag on current commit
git tag -a 
# 安全取消当前的merge操作
git merge --abort	
# 解决完冲突,要提交时
git commit -a		
# 回滚到那个合并开始前的状态
git reset --hard		
# 创建并切换
git checkout -b dev	
# 删除dev分支
git branch -d dev	
# 查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit	
# 看log(可以alias方便使用)
git log --oneline --all --graph --decorate
# 用git做类似svn export的操作
git archive master | tar -x -C /somewhere/else
# 命令同步分支列表(分支列表里就不会显示已远程被删除的分支了)
git fetch -p