git
配置
git config --global core.editor vim
撤销修改
//撤销暂存区代码 # 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 # 第二步:撤销工作区代码 git checkout 文件名
// 撤销指定文件到指定版本
git checkout <commitID> <filename>
合并commit
git rebase -i HEAD~3 // git rebase -i commit_id 2 //pick,git会应用这个补丁,以同样的提交信息(commit message)保存提交 3 //squash,git会应用这个补丁,但会与之前的提交合并 4 //fixup,git会应用这个补丁,但会丢掉提交日志
5 //stop, git会移除这个提交
// 修改commit:
git commit –amend 既可以对上次提交的内容进行修改,也可以修改提交信
强制覆盖本地代码
git fetch --all
git reset --hard origin/master
查看提交日志
git show <commit-hashId> [filename] //便可以显示某次提交的修改内容
git show <commit-hashId> --stat //查看某次提交的文件, 不加--stat便可以显示某次提交的修改内容
git log -2 --stat //查看提交的文件
--pretty=oneline //只会显示版本号和提交时的备注信息
git reflog // 引用日志 可以查看所有分支的所有操作记录(包括已经被删除的commit记录和reset的操作(git log看不到))
将本地目录添加到远程git仓库
git init; git remote add origin https://github.com/xx/xx.git git pull --rebase origin master // git pull origin master // git branch --set-upstream-to=origin/master master , git push则不用指定远程分支 git add . git commit -m "first commit" git push -u origin master // 如何远程仓库有readme文件,则要加 -f.
回退版本
// 版本一 --> 版本二 --> 版本三
// reset 回退到版本一, 让HEAD这个指针指向版本一
git reset --hard HEAD^^ // HEAD^, HEAD^^, HEAD~1, HEAD~10 git reset --hard 版本号 // 可以是commit id的前6位
git push -f
// revert (恢复)删除版本二的提交,生成版本四
git revert -n 版本号
对比版本
// 对比版本库与工作区 git diff HEAD -- login.py // 对比版本库 git diff HEAD HEAD^ -- login.py // 差异版本更新的文件列表 git diff 2da595c daea1d6 --name-only
git pull 相当于git fetch, git merge
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中 //git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别 git merge origin/master //进行合并
合并
git checkout feature git merge master //或者,你也可以把它们压缩在一行里。 git merge master feature // feature 分支中新的合并提交(merge commit)将两个分支的历史连在了一起 //Merge 好在它是一个安全的操作。现有的分支不会被更改,避免了 rebase 潜在的缺点 ---------------------------------------- git checkout feature git rebase master // -i 交互式 //它会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来。
//除非你可以肯定该feature1分支只有你自己使用,否则请谨慎操作。
http://jartto.wang/2018/12/11/git-rebase


浙公网安备 33010602011771号