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(忽略大小写)为falsegit 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切换到本地分支devgit checkout -b dev123创建以当前分支(比如test为base)创建本地分支dev123git checkout --track origin/dev切换到远程dev分支, 并在本地创建dev分支(以远程dev分支为base) -
git add xyz添加xyz文件至indexgit 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:testtest1为本地,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,名为tagName2git push origin tagName1推送名为tagName1的tag到远程仓库git push origin --tags一次全部推送没有被推送的taggit show tagName1查看本地名为tagName1的tag 的详细信息git tag 或者 git tag -l查看本地所有 taggit ls-remote --tags origin查看远程所有 taggit tag -d tagName删除名为tagName1的taggit 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 --cachedgit rm: 同时从工作区和索引中删除文件。即本地的文件也被删除了。
git rm --cached: 从索引中删除文件。但是本地文件还存在, 只是不希望该文件被版本控制。
问题1
error: 您尚未结束您的合并(存在 MERGE_HEAD)。
提示:请在合并前先提交您的修改。
fatal: 因为存在未完成的合并而退出。
解决办法
git merge --abort
git reset --merge