绘制不同branch之间的关系图
git log --oneline --graph --decorate --all
重组中间的commit信息
git rebase -i commit-id(需要修改的前一次)
合并另一个分支中的某个文件或文件夹(将B中的内容合并到A中)
// 首先切换到分支A
git checkout A
// 合并
git checkout B public/** view/index.html
暂时保存工作区和暂存区的内容
git stash [save “XXXX”]
全部恢复到工作区: git stash pop
分别按原来的位置恢复到工作区和暂存区:git stash pop --index
取消对某文件的跟踪
git rm --cached file_name
从过去某个提交拉出新的分支
git checkout commitid -b branchName
删除远程仓库地址
git remote rm origin
匹配远程仓库地址
git remote add origin https://github.com/XXX.git
修改前一次提交
git commit --amend
回到过去某个commit-id
git checkout commit-id
commit后撤销提交
git reset [–soft/–hard/–mixed] HEAD^
HEAD^表示撤回回上一次提交
–soft表示不删除工作空间改动代码,撤销commit,不撤销git add .
–hard表示删除工作空间改动代码,撤销commit,撤销git add .
–mixed表示不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
查看branch
git branch 查看本地分支
git branch -r 查看远程分支
git branch -a 查看本地和远程全部分支
在本地使用远程的某一分支
更新:git fetch
第一次使用远程分支:git checkout 远程分支名
查看两个commit之间修改的文件名
git diff --name-status commitID_1 commitID_2
或
git diff commitID_1 commitID_2 --stat --name-only
HEAD与master分支游离(detached)解决方法:
1、在HEAD创建一个branch:git branch temp HEAD的commitID
2、切换到master分支:git checkout master
3、在master上将其与branch合并:git merge temp
4、删除temp分支:git branch -d temp
放弃某一文件的修改
在没有git add .前
git checkout 文件名
git checkout . # 放弃所有文件的所有修改
在git add .后,则使用git reset HEAD
更新上一次commit,且不改变commit info
git commit --amend --no-edit
如果合并时需要修改,则不添加–no-edit,可以重新编写commit信息
在不切换分支的情况查看其它提交的某一文件
git show commitID(或分支名):filepath