git 学习使用记录

一、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,从暂存区删除
git reset HEAD <file> 通过重写目录树撤销add文件,工作区也不受影响
git clean [-df] 移除所有未跟踪文件(d包括未被跟踪目录)。d 目录 f强制。删除工作区文件
git rm <file> 暂存区工作区同时删除
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 stash save

git stash drop

git stash clear

git stash show

git stash apply

git stash pop

git stash list

git rm --cached <file> 直接从stage中删除。撤销add

git reset HEAD<file>通过重写目录树移除stage文件

git checkout .

git checkout HEAD

 

git diff 比较工作区与暂存区

git diff HEAD 比较本地库与工作区

git diff --cached 比较暂存区与之前提交过的

 

git commit --amend   修改提交

git reset --hard HEAD~n 撤销提交

 

git cherry-pick commit_id

 

git remote 不带参数,列出已经存在的远程分支

git remote -v 列出详细信息,在每一个名字后面列出其远程url

git branch 所有本地分支

git branch -r 远程

git branch -a 本地远程

git branch -v 详情 verbose

git branch -vv 详情 可查看本地分支与远程分支的追踪关系

git branch <name> 创建分支,但依然停留在当前分支

git branch -b <name> 创建并切换

git branch --track <name> [remote-branch] 新建分支,并与指定远程分支建立追踪关系

git checkout <name> 切换到指定分支,并更新工作区代码

git checkout - 切换到上一个分支

git branch --set-upstream <branch> <remote-branch> 建立追踪关系,现有分支与远程分支

git merge <branch> 合并指定分支到当前分支

git cherry-pick [commit] 指定一个commit,合并到当前分支

git branch -d <name> 删除分支

git push origin --delete <name>  =  git branch -dr <remote> 删除远程分支

 

 

 

git status .

git add/ commit -m/ commit -a/ branch -av -vv -r -m/clean -f -d -df/

git pull

git fetch  orign dev:dev

git merge

git rebase

https://www.jianshu.com/p/a5c4d2f99807

https://www.cnblogs.com/runnerjack/p/9342362.html

 

 

git push origin HEAD :refs/for/dev  空格不能

git push origin HEAD:refs/for/dev

git branch -m dev dev11  分支改名

git branch --set-upstream-to=origin/dev dev  本地追踪远程

 

 

 

reset

clear

history

git init [dir]

git clone [url]

git status [filename]

git add [.][fn1 fn2]

git rm --cached <file> 撤销add,从暂存区删除

git reset HEAD <file> 通过重写目录树撤销add文件,工作区也不受影响

git clean [-df] 移除所有未跟踪文件(d包括未被跟踪目录)d 目录 f强制。删除工作区文件

git rm <file> 暂存区工作区同时删除

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 

猜你喜欢

转载自www.cnblogs.com/foolash/p/11959484.html