git 使用常用命令

161 阅读5分钟

mmexport1647403818010_edit_32764408636145.jpg git命令常用汇总:

  • git init 初始化本地git仓库(创建新仓库)

  • git config --global user.name "xxx" 配置用户名

    git config --global user.email "xxx@xxx.com" 配置邮件

    git config --global core.ignorecase false 配置core.ignorecase(忽略大小写)为false

    git config --list(或者-ls) 列出git 配置 git config --remove-section core 删除一个小节:core

  • git branch 查看本地所有分支

    git branch -r 查看远程所有分支

    git branch -a 查看所有(本地与远程)分支

    git branch -vv 查看本地分支与远程分支的关联情况

    git branch --contains 9fa99f99 查看包含有名为‘9fa99f99’commitid提交的分支

    git branch --merged 显示所有已合并到当前分支的分支

    git branch --no-merged 显示所有未合并到当前分支的分支

    git branch -m test1 test2 更改分支test1名字为test2

  • git grep someWord 查看包含someWord的文件

    传递 -n 或 --line-number 选项数来输出 Git找到文件中的匹配行的行号(就是第几行)

    传递-p 或 --show-function 选项来显示每一个匹配的字符串所在的方法或函数

    传递-c 或 --count 选项来让 git grep 输出包括那些包含匹配字符串的文件,以及每个文件中包含了多少个匹配

  • git show-branch 查看当前分支的提交历史

    git show-branch-all 查看所有分支的提交历史

  • git status 查看当前分支情况

  • git log 查看commit的日志

    git log -1 显示1行日志 -n为n行

    git log -p + 文件名 (可查看该文件以前每一次push的修改内容),文件名为可选项

  • git remote add origin git@xxx.xxx.cn 增加远程仓库origin

  • git remote show origin 显示远程仓库origin里的资源

  • git remote show 显示远程仓库源 结果通常显示为origin

  • git checkout dev 切换到本地分支dev

    git checkout -b dev123 创建以当前分支(比如test为base)创建本地分支dev123

    git checkout --track origin/dev 切换到远程dev分支, 并在本地创建dev分支(以远程dev分支为base)

  • git add xyz 添加xyz文件至index

    git add . 增加当前子目录下所有更改过的文件至index

  • git commit -a -a 表示把所有的change添加到git index,然后再commit,相当于git add 和commit的综合使用

    git commit -m -m 添加提交注解

    git commit --amend -m 'xxx' 合并上一次提交(用于反复修改)

  • git revert b573337763e5c0013802  撤销id为b573337763e5c0013802的commit提交

  • git diff 表示比较「暂存区」与「工作区」之间的差异

    git diff commitId2 表示工作区于commitId2的差异

    git diff commitId1 commitId2 表示commitId1 与 commitId2 之间的比较

    git diff --cached 表示暂存区与本地仓库(最近一次提交)的比较

    git diff --cached commitId2 表示暂存区与commitId2之间的比较

    git diff HEAD 表示工作区和本地仓库(最新一次的提交)进行比较

    git diff --stat 显示有多少行发生变化,简洁的展示差异

    如果只要显示 `src` 文件夹下的差异,指定文件夹名即可, `git diff --stat HEAD~ HEAD src`
    如果只显示 `test.txt` 文件的差异,指定文件即可, `git diff HEAD~ HEAD src/test.txt`
    
  • git cherry-pick ffaaddtedf9   合并提交ffaaddtedf9的修改

  • git push origin master 将当前分支push到远程master分支

    git push origin test1:test test1为本地,test为远程(本地test1推到远程test)

    git push origin :hotfix/modifySomething 删除远程hotfix/modifySomething分支

    git push --tags 把所有tag推送到远程仓库

    git branch -u origin/远程分支名c 指明当前本地分支跟踪origin的远程分支c(必须远程已经存在改分支c)

    git push --set-upstream origin <远程分支名> 把本地分支关联到远程主分支;为每个更新或推送的分支设置远程引用,若远程仓库没有<远程分支名>时,会自动创建该分支名

    git branch --unset-upstream 取消本地分支与远程分支的关联

    git branch --set-upstream-to=origin/远程分支 本地分支本地分支与远程分支建立关联

  • git cherry-pick ffaa66ddaa99     合并提交ffaa66ddaa99的修改

  • git merge release 合并分支release 到当前分支

  • git rebase 直线性合并分支

  • git whatchanged  显示所有提交历史对应的文件修改(包括本地与远程的所有commit与tag)

  • git remote update origin -p(或者--prune) 更新远程origin的分支

  • git show master@{yesterday} 显示master分支昨天的状态

    git show HEAD~2

  • git tag tagName1 创建本地tag,名字为tagName1(以最后的commitId为基础创建tag)

    git tag -a tagName2 commitId 以提交commitId做为基础创建tag,名为tagName2

    git push origin tagName1 推送名为tagName1的tag到远程仓库

    git push origin --tags 一次全部推送没有被推送的tag

    git show tagName1 查看本地名为tagName1的tag 的详细信息

    git tag 或者 git tag -l 查看本地所有 tag

    git ls-remote --tags origin 查看远程所有 tag

    git tag -d tagName 删除名为tagName1的tag

    git push origin :refs/tags/tagName1 删除远程名为tagName1的tag

  • git ls-remote 显示远程版本库的引用

  • git fetch -all --all #下载代码到本地,不进行合并操作

    git reset --hard origin/dev (origin/dev是你所需要更新的分支,把HEAD指向最新下载的版本 )

  • git clean 清除未跟踪的文件

    git clean -d 不仅删除没有跟踪的文件 ,还删除没有跟踪的文件夹

    git clean -f 强制运行删除

    git clean -x 忽略的文件被删除以及git不知道的文件

  • git rm 和 git rm --cached

    git rm : 同时从工作区和索引中删除文件。即本地的文件也被删除了。
    git rm --cached : 从索引中删除文件。但是本地文件还存在, 只是不希望该文件被版本控制。

问题1
error: 您尚未结束您的合并(存在 MERGE_HEAD)。
提示:请在合并前先提交您的修改。
fatal: 因为存在未完成的合并而退出。

解决办法
git merge --abort
git reset --merge