查看分支
- 查看本地分支:
git branch
- 查看远程分支:
git branch -r
- 查看所有分支:
git branch -a
- 创建本地分支:
git branch<分支名>
- 切换分支:git checkout <分支名>
- 创建并切换到新分支:
git checkout -b <分支名>
- 查看所属分支 git branch -a
- 跟踪远程分支 git push -u origin <远程分支名>
-
git branch -d <分支名>
删除本地分支 -
git push origin --delete <分支名>
删除远程分支 -
git reset --hard HEAD^
回退到上个版本 -
git reset --hard HEAD~3
回退到前3次提交之前,以此类推, -
git reset --hard commit_id
退到/进到 指定commit的sha码 -
git checkout commit ID
查看提交记录 -
git log
查看提交记录--pretty=oneline -
git log --pretty=oneline
查看提交记录,只会显示版本号和提交时的备注信息 -
git reflog
可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) -
git cherry-pick <commitid>
可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上
2.git之删除远程仓库文件,使用 git rm 命令即可,有两种选择:一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;一种是 git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)。假如你有文件不小心commit到了服务器那么你想要删除它,可以使用:git rm -- cached "路径+文件名" ;git commit -m "delete file" ;git push;git rm -r "路径+文件名" ;git commit -m "delete file";git push
本地新建分支,并切换到本地新分支,同时拉取远程分支到本地:
git checkout -b <本地分支名> origin/<远程分支名>
合并本地分支:
git merge dev
合并远程分支到本地分支:
git pull origin dev
推送到已跟踪的远程分支:
git push
推送到固定的远程分支:
git push origin master
拉取已跟踪的远程分支:
git pull
暂存所有:
git add <文件名>
暂存所有:
git add .
或git add *
git branch -vv
:查看本地分支和远程分支的跟踪关系git branch -u origin/serverfix
: 设置当前分支跟踪远程分支origin/serverfixgit branch --set-upstream branch-name origin/branch-name
: 将branch-name分支追踪远程分支origin/branch-namegit checkout -b develop origin/develop
:在远程分支的基础上建立develop分支,并且让develop分支追踪- - `origin/develop远程分支。放弃所有修改文件(未暂存):
git checkout .
放弃单个修改文件(未暂存):
git checkout -- filename
删除所有新增文件(未暂存):
git clean -xdf
删除单个新增文件(未暂存):
rm filename / rm dir -rf
gitk --all:真实的画出本地+远程所有分支的全部提交的树状结构
取消暂存
新建远程分支,并推送本地分支到远程分支
git clone -b <指定分支名> <远程仓库地址>
查看远程仓库地址:
git remote show origin
切换远程仓库地址:
git remote set-url origin xxx(新的仓库地址)
git diff:当工作区有改动,临时区为空,diff的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空,diff对比的是“工作区与暂存区的共同文件”。
git diff <分支名1> <分支名2> :比较两个分支上最后 commit 的内容的差别
git rebase
git stash:
-
git stash save "message"
:保存当前工作进度,将工作区和暂存区恢复到修改之前,message为此次进度保存的说明。 -
git stash list
:显示保存的工作进度列表,编号越小代表保存进度的时间越近。 -
git stash show
:显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num}
,比如第二个git stash show stash@{1}
-
git stash pop stash@{num}
:恢复工作进度到工作区,并将缓存堆栈中的对应stash删除,此命令的stash@{num}
是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
-
git stash apply stash@{num}
:恢复工作进度到工作区且不会把存储从存储列表中删除,该工作进度可重复恢复,此命令的stash@{num}
是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
-
git stash drop stash@{num}
:删除一条保存的工作进度,此命令的stash@{num}
是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
-
git stash clear
:删除所有保存的工作进度。
git cherry-pick
-
git cherry-pick <commitHash>
:将指定的提交commitHash,应用于当前分支。这会在当前分支产生一个新的提交 -
git cherry-pick <HashA> <HashB>
:将 A 和 B 两个提交应用到当前分支。这会在当前分支生成两个对应的新提交。 -
git cherry-pick A..B
:转移从 A 到 B 的所有提交,不包含A。它们必须按照正确的顺序放置:提交 A 必须早于提交 B,否则命令将失败,但不会报错。 -
git cherry-pick A^..B
:转移从 A 到 B 的所有提交,包含A。
git reset
-
git reset HEAD
回退到当前版本,其实就是去除掉添加到暂存区的内容,退回到工作区 -
git reset HEAD^
回退到上个版本,把提交的内容重新回退到工作区 -
git reset <commit_id>
回退到指定版本,把提交的内容重新回退到工作区
git reset --hard
-
git reset --hard HEAD
回退到当前版本,彻底去除掉添加到暂存区的内容,内容不会回退到工作区 -
git reset --hard HEAD^
回退到上个版本,彻底回退,内容不会回退到工作区 -
git reset --hard HEAD~3
回退到前3次提交之前,以此类推,内容不会回退到工作区 -
git reset --hard <commit_id>
退到/进到 指定commit的sha码,内容不会回退到工作区