git命令

查看分支

  • 查看本地分支: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/serverfix

  • git branch --set-upstream branch-name origin/branch-name: 将branch-name分支追踪远程分支origin/branch-name

  • git 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码,内容不会回退到工作区

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。