git基本组成框架:Workspace、Index / Stage、Repository、Remote
Workspace:开发者工作区 Index / Stage:暂存区/缓存区 Repository:仓库区(或本地仓库) Remote:远程仓库
git删除分支
删除远程分支: git push origin --delete [branch_name] 删除本地分支: git branch -d 会在删除前检查merge状态(其与上游分支或者与head)。 git branch -D 是git branch --delete --force的简写,它会直接删除。 查看远程分支: git branch -r 查看本地分支: git branch 查看全部: git branch -a
将多次提交合并成一次提交再请求合并
查看历史提交记录:git log 里面有提交每次的版本号,以及当时提交对应的注释。
作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴 合并提交 git rebase begin end 前开后闭区间 git rebase -i HEAD~3 然后对于三个版本号 进行修改前面的指令类型。
pick:保留该commit(缩写:p) reword:保留该commit,但我需要修改该commit的注释(缩写:r) edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e) squash:将该commit和前一个commit合并(缩写:s) fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f) exec:执行shell命令(缩写:x) drop:我要丢弃该commit(缩写:d)
然后跳转到注释修改界面。 将一段commit粘贴到另一个分支
git rebase [startpoint] [endpoint] --onto [branchName]
前开后闭区间同上,加对应的分支名 复制过去后,此时 增加了一段commit的头指针还没有更新到最新位置。 切换到当前分支,然后将指向的提交id设为当前head指向的提交id eg:
git rebase 90bc0045b^ 5de0da9f2 --onto master
git checkout master
git reset --hard 0c72e64
回滚代码仓库:
git reset 不加参数 重置后取消暂存区的变更 git reset 加三种参数 加id (–soft 将头指针恢复? 已经add的暂存区以及工作区的所有东西都不变 –mixed将头恢复?已经add的暂存区也会丢失,工作区的代码不变 –hard一切恢复,头变,add的暂存区消失,代码都恢复到之前状态) git reset --hard HEAD^ 是迭代当前仓库的上一个版本 git reset --hard HEAD~3回滚前三个版本 (git 合并提交 合并多了 解决办法: git reset --hard 版本号) git add . 与 git add -all 一样 但是前一个命令不会记录删除操作。 比如本地删除一个文件,提交的时候会记录删除操作,提交仓库时会删除同样的文件。
git保存当前工作状态切换分支:git stash
stash这个保存是以栈的方式保存的,先进后出。
将文件撤销回到最近一次修改的状态:git checkout – file
git里的各种撤销
查看git配置文件
ls -ah查看隐藏目录 .git
|