git笔记

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 diff HEAD <fiile>                                 :最新版本库和工作区(woring directory)的<fiile>比较
git diff commit-id                                      :指定的commit-id和工作区(woring directory) 的比较
git diff --cached [<commit-id>]          : 工作区(woring directory)和 指定的commit-id的比较
git diff [<commit-id>] [<commit-id>]                   :比较两个commit-id之间的差异
git diff refs/remotes/origin/master                      :用远程master分支比较当前工作区
想查看简单结果在diff后加 --stat




git checkout  -- <file>:(-- 很重要,如果没有--就变成切换到另一个分支的命令)
两种情况:1。<file>自修改后还没有放到暂存区,现在会把工作区撤销成和版本库一模一样的状态(包括删除 )
                    2.   <file>已经添加到暂存区,又做了修改,现在,撤销工作区修改就回到添加到暂存区的状态。
git checkout branch -- <file> :用branch中的<file>来替换工作区中的<file>
git checkout -b xxx :创建并切换到分支XXX
git checkout -b xxx orign/x   :新建分支xxx跟踪远程分支origin/x
git checkout xxx :切换到分支xxx





git branch               :查看分支状态
git branch dev  :创建分支dev
git branch -d xxx   :删除分支
git branch -D xxx : 强制删除分支(如果分支没有合并,需要这个命令才能删除)
git branch -r     :查看远程库的分支
git branch -a          :查看所有分支列表,包括远程和本地
git branch -vv        :查看本地分支对应得远程分支
git branch -m oldname newname : 给分支重命名
git branch --set-upstream xxx origin/zzz :把本地分支xxx和远程库分支zzz关联起来
git branch --merged:显示已经合并的分支
git branch --no-merged:显示尚未合并的分支



git merge xxx   :合并指定分支到当前分值
当前分支合并到另一分支时,如果没有分歧解决,就会直接移动文件指针。这个过程叫做fastforward。
—no-ff (no fast foward),使得每一次的合并都创建一个新的commit记录。即使这个commit只是fast-foward,用来避免丢失信息。




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=2.weeks 你可以给出各种时间格式,比如说具体的某一天(“2008-01-15”),或者是多久以前(“2 years 1 day 3 minutes ago”)
-(n) 仅显示最近的 n 条提交
--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 pull origin next:master 把origin/next pull到 本地master分支,想当于git fetch origin;git merge origin/next
如果远程分支与本地分支有追踪关系可以直接在当前分支执行:git pull origin(git 会对远程和本地同名分支自动建立追踪关系),如果当前分支只有一个追踪关系,
可以直接:git pull
注:手动关联分支 :git branch --set-upstream xxx origin/zzz :把本地分支xxx和远程库分支zzz关联起来





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的别名


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值