一、一个小时学会git:https://www.cnblogs.com/best/p/7474442.html
二、fetch fatal: Refusing to fetch into current branch refs/heads/dev of non-bare repo
http://blog.chinaunix.net/uid-20543672-id-3049419.html
三、
reset 重新初始化终端/清屏。 = clear history git init [dir] git clone [url] git status [filename] git add [.][fn1 fn2] git rm --cached <file> 撤销add,直接从stage暂存区中删除 git reset HEAD <file> 通过重写目录树撤销add文件,工作区也不受影响 git clean [-df] 移除所有未跟踪文件(d包括未被跟踪目录)。d 目录 f强制。删除工作区文件 git rm <file> 暂存区工作区同时删除
git rm xx --cached 撤销add操作,保留工作区文件 rm <file> 未被跟踪,直接删除 git checkout . 暂存区覆盖工作区 git checkout HEAD . 暂存区工作区被HEAD覆盖。暂存区未推送、工作区未提交都丢失 git checkout 汇总显示工作区、暂存区、版本库的差异 git checkout HEAD 同上 git checkout branch git checkout --filename 用暂存区的文件覆盖,撤销上次add后的修改 git checkout branch -filename 覆盖暂存区、工作区中的文件 git checkout . 或者 git checkout --. 暂存区覆盖工作区,撤销所有修改 git commit -m [msg] git commit <file1> <file2> ... -m [msg] 提交暂存区指定文件到仓库区 git commit -a 提交工作区到仓库区,跳过add,对新文件无效 git commit --amend -m [msg] 替换上一次提交,若代码没有变化,则相当于修改注释信息 git commit --amend [file1] [file2]... 重新提交指定文件 git reset --hard HEAD~1 撤销提交,放弃工作区和index的改动,HEAD指针指向上一次提交 git revert <commit-id> 这条命令会把指定的提交的所有修改回滚,并同时生成一个新的提交。 git reset --hard HEAD^^^^ = HEAD~4 //工作区与暂存区被撤销的代码会消失。 git reset --commitId --hard:撤销并删除相应的更新 --soft:撤销相应的更新,把这些更新的内容放到Stage中 git reflog git log --oneline -n git show
git log --name-status 每次修改的文件列表, 显示状态
git log --name-only 每次修改的文件列表
git log --stat 每次修改的文件列表, 及文件修改的统计
--mixed
--soft
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
git stash save
git stash drop
git stash clear
git stash show
git stash apply
git stash pop
git stash list
git diff 比较工作区与暂存区
git diff HEAD 比较本地库与工作区
git diff --cached 比较暂存区与之前提交过的
git commit --amend 修改提交
git merge <branch> 合并指定分支到当前分支
git cherry-pick [commit] 指定一个commit,合并到当前分支
git remote 不带参数,列出已经存在的远程分支
git remote -v 列出详细信息,在每一个名字后面列出其远程url
git branch 所有本地分支
git branch -r 远程
git branch -a 本地远程
git branch -v 详情 verbose
git branch -d <name> 删除分支
git branch -vv 详情 可查看本地分支与远程分支的追踪关系
git branch <name> 创建分支,但依然停留在当前分支
git branch -m dev dev11 分支改名
git checkout -b <name> 创建并切换
git branch --track <name> [remote-branch] 新建分支,并与指定远程分支建立追踪关系
git checkout <name> 切换到指定分支,并更新工作区代码
git checkout - 切换到上一个分支
git branch --set-upstream <branch> <remote-branch> 建立追踪关系,现有分支与远程分支[新版本不再支持 https://www.cnblogs.com/CreteWu/p/8548535.html]
git branch --set-upstream-to=origin/dev dev 本地追踪远程
git push origin --delete <name> = git branch -dr <remote> 删除远程分支
git status .
git status <filename>
git add/ commit -m/ commit -a/ branch -av -vv -r -m/clean -f -d -df/
git pull
git fetch 获取所有最新远程分支
git fetch orgin dev 获取指定远程分支
git fetch orign dev:dev 获取指定远程分支到本地的某分支,没有则创建,不切换当前分支
git merge
git rebase (fetch + rebase == git pull -r == git pull --rebase)
git push origin HEAD :refs/for/dev 空格不能(gerrit)
git push origin HEAD:refs/for/dev
stash: https://www.cnblogs.com/zndxall/archive/2018/09/04/9586088.html
fetch: https://www.jianshu.com/p/a5c4d2f99807
fetch: https://www.jianshu.com/p/d07f5a8f604d
fetch&pull: https://www.cnblogs.com/runnerjack/p/9342362.html
Git 少用 Pull 多用 Fetch 和 Merge
https://my.oschina.net/u/1992476/blog/1248171
git fetch 、git pull、git merge 的理解
https://blog.csdn.net/json159/article/details/82714784
git log参数
git commit 提交信息格式:
...