git初始化: git init
mdir <fiile> 在当前目录创建<fiile>文件夹
cat <fiile>:显示整个文件
rm <file> :删除文件
--------------------------------------------------------------------------------------
总结:
- git add files 把当前文件放入暂存区域。
- git commit 给暂存区域生成快照并提交。
- git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。
- git checkout -- files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。
--------------------------------------------------------------------------------------
git config --global core.editor xxx :设置文本编辑器为xxx
git config --global merge.tool xxx :设置差异分析工具为xxx
工作区(working directory):就是你电脑能看的见得那个目录,learngit就是 一个工作区
git add <fiile> 把修改文件提交到暂存区(stage) (可以add多次)
git add -A :添加所有改动
git add * : 添加新建文件和修改,但是不包括删除
git add . :添加新建文件和修改,但是不包括删除
git add -u :添加修改和删除,但是不包括新建
git commit -m “<fiile>”:提交更改,吧暂存区的所有内容提交到当前分支(commit可以一次提交多个文件)
git commit -a :可以跳过git add 直接提交
git commit -am "xxx":跳过git add 直接提交 备注为xxx
git commit --amend -m “xxx”:有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交
git status:查看结果,显示当前仓库状态
git status -s:以精简的方式显示项目当前的状态(A 表示已经add AM表示已经add修改后没有再次add,M表示修改)
git diff : 工作区(woring directory)和暂存区(index)的比较
git diff --cached <fiile> :最新版本库和暂存区(index)的<fiile>的比较
git log:操作的历史记录
git log --pretty=oneline:单行显示操作历史记录
git log --graph :查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit :简略的查看分支合并情况
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
--since, --after 仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
git reset --hard HEAD^ : 回退到上个版本(也可以是HEAD^^回退两个,以此类推)
git reset --hard <fiile> :<fiile>是commit id 回退到此id的版本
git reset HEAD -- <file> : 可以把暂存区的修改撤销掉,重新放回工作区
git reset <file> :撤销提交单独文件
git reset :unstage all due changes
git reflog:记录每一次命令
git rm <file> : 把文件从暂存区和工作区删除
git rm --cached <file>:把文件从暂存区删除
-f:强制删除
git mv xx xxx:作用就是把暂存区的xx删除,并把工作区的文件xx重命名为xxx,然后在git add xxx
git remote add origin git@github.com:zhangyimi/XXXX.git :关联github上名为zhangyimi账号的XXXX的远程库,origin是简称方便以后引用
即git remote add [shortname] [url]
git remote :查看远程库的名字
git remote -v :查看抓取和推送的地址。
git remote rename xx xxx:把远程服务器在本地的简称xx重命名为xxx,如果可以origin命名为zhagnshuai,那么origin/master就变成饿了zhangshuai/master
git remote rm xx:移除对应的远程库
git fetch [shortname] :抓取远程库[shortname]有的,本地仓库没有的信息。但是没有合并到本地分支
git fetch origin master : 抓取远程服务器orgin的master分支,但是没有合并到本地分支,只有有了一个origin/master指针需要你再去 git merge orgin/master合并到本地分支,也可以 git checkout -b xx origin/xxx 如果不存在xx就在本地创建一个xx把origin/xxx的信息同步过来。
git pull <远程主机名> <远程分支名>:<本地分支名>:把远程分支pull到本地分支
git clone <repo> <directory>:repo:Git 仓库。directory:本地目录。(directory省略会在本地自动创建同名库)
git clone git@github.com:zhangyimi/XXXX.git : 克隆github上名为zhangyimi账号的XXXX的远程库
git push [shortname] master :把本地库推送到远程库(第一次推送远程库是空的,要加上-u,git push -u origin master 是为了把分支一起推送上去)(并且推送的远程库必须要有你的ssh公钥)
git push [shortname] xxx:把本地分支xxx推送到远程分支(shortname 是远端服务器在本地的简称)
git push [shortname] <tagname>:推送某个标签到远程
git push [shortname] --tags:把所有标签都推送到远程
git push [shortname]:refs/tags/xxx:删除远程库的名为xxx的标签
git push [shortname] :xxx :删除远程分支
git tag: 查看标签(不是按打标签的时间排序,是按标签名的字母排序的)
git tag xxx :给本地最新库打上标签名
git tag xxx commit_id :给commit_id打上标签名
git tag -a xxx -m "zzz" :为最新版本库打标签名xxx,并有注释zzz(-a指定标签名,-m指定说明文字)
git tag -d xxx: 删除标签
git rebase xx:把当前分支衍合到xx分支上(这些命令会把你的"mywork"分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到".git/rebase"目录中),然后把"mywork"分支更新 到最新的"origin"分支,最后把保存的这些补丁应用到"mywork"分支上。)如图:
git rebase [主分支] [特性分支]:取出特性分支在主分支上重演
git rebase --continue:在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行这条语句就可以了。
git rebase --abort:在rebase过程中随时终止,并恢复到原来的状态。
git stash :保存当前工作空间
git stash list:显示所有stashid
git stash pop:恢复最近一个stash并从stash list中删除他
git stash apply stash@{id}:恢复某个id的stash到工作空间
git stash drop:删除最新stash
git stash drop stash@{id}: 删除某一个
git stash clear:清空stash
git show <tagname>:可以看到<tagname>的说明文字
git config --global color.ui true:git 会适当显示不同颜色
git config --global alias.aa xxx:为xxx起一个名为aa的别名