git删除远程主机没有的tag

可以先删除所有本地tag,然后再拉取远程上的taggittag-l|xargsgittag-dgitfetch--tags其他方法以及查询tag的命令请见:Removelocaltagsthatarenolongerontheremoterepository ...

git stash

gitstash可用来暂存当前正在进行的工作,比如想pull最新代码,又不想加新commit,或者另外一种情况,为了fix一个紧急的bug, 先stash,使返回到自己上一个commit,改完bug之后再stashpop,继续原来的工作。基本流程:$gitstash$dosomework$gitstashpop 查看当前的stash情况:$gitstashlist使用某个特定的stash$gitstashapplystash@{n}查看某个stash情况$gitstashshowstash@{n}丢弃某个stash$gitstashdropstash@{n} 清空stash,也就是丢弃所有stash$gitstashclear 保存多个stash容易混淆,可以在stash时添加message$gitstashsave"message" gitstashpop等同于$gitstashapplystash@{0}$gitstashdropstash@{0} ...
代码星球 代码星球·2021-02-21

git cherry-pick

--A---B---C---DEF假设有以上ABCDEF等一些提交,当前在D这个提交点上,如果想把F重新提交到D所在分支的后面,可以使用gitcherry-pickF,这时会变成如下状态 --A---B---C---D---F‘EF  gitcherry-pick<commitid>:单独合并一个提交gitcherry-pick -x<commitid>:同上,不同点:保留原提交者信息。Git从1.7.2版本开始支持批量cherry-pick,就是一次可以cherry-pick一个区间的commit。 gitcherry-pick<start-commit-id>..<end-commit-id>或gitcherry-pick<start-commit-id>^..<end-commit-id> 前者表示把<start-commit-id>到<end-commit-id>之间(左开右闭,不包含start-commit-id)的提交c...
代码星球 代码星球·2021-02-21

git搜索--grep

1.查找某个关键字(比如函数名): $gitgrepxmmapconfig.c:contents=xmmap(NULL,contents_sz,PROT_READ,diff.c:s->data=xmmap(NULL,s->size,PROT_READ,MAP_PRIVATE,fd,0);git-compat-util.h:externvoid*xmmap(void*start,size_tlength,intprot,intflaread-cache.c:mmap=xmmap(NULL,mmap_size,PROT_READ|PROT_WRITE,MAP_PRIVATE,refs.c:log_mapped=xmmap(NULL,mapsz,PROT_READ,MAP_PRIVATE,logfd,0);sha1_file.c:map=xmmap(NULL,mapsz,PROT_READ,MAP_PRIVATE,fd,0);sha1_file.c:idx_map=xmmap(NULL,idx_size,PROT_READ,MAP_PRIVATE,fd,0);sha1_...
代码星球 代码星球·2021-02-21

git日志--log

1.查找改动某个文件所有的日志gitlog--pretty=onelinesomefile.javagitlog--onelinesomefile.javagitlog--pretty=format:"%h%an,%cd:%s"somefile.java 2.格式化输出,gitlog--pretty=format:""选项说明%H提交对象(commit)的完整哈希字串%h提交对象的简短哈希字串%T树对象(tree)的完整哈希字串%t树对象的简短哈希字串%P父对象(parent)的完整哈希字串%p父对象的简短哈希字串%an作者(author)的名字%ae作者的电子邮件地址%ad作者修订日期(可以用-date=选项定制格式)%ar作者修订日期,按多久以前的方式显示%cn提交者(committer)的名字%ce提交者的电子邮件地址%cd提交日期%cr提交日期,按多久以前的方式显示%s提交说明 gitlog--pretty=format:"%h%an,%cd:%s"  3.指定日期、关键字、作者 --since,--after仅显示指定时间之后...
代码星球 代码星球·2021-02-21

git 忽略已跟踪的文件

对于未跟踪的文件,可以编辑.gitignore文件进行忽略。 对于已跟踪的文件,编辑.gitignore文件不会起作用,它只针对未被跟踪的文件,也就是你先设置规则,然后添加的新文件符合这些规则的就会被忽略。为了忽略已跟踪的文件,可以使用如下命令:gitupdate-index--assume-unchangedfilename该命令用来忽略指定文件的变动,在gitstatus的时候不会检查这个文件是否变化,也就不会被提交。 撤销上述命令,用:gitupdate-index--no-assume-unchangedfilename ...
代码星球 代码星球·2021-02-21

git分支--branch

分支创建:$gitbranchtesting 显示分支:$gitbranchiss53*mastertesting如果需要查看每一个分支的最后一次提交$gitbranch-viss5393b412cfixjavascriptissue*master7a98805Mergebranch'iss53'testing782fd34addscotttotheauthorlistinthereadmes  --merged 与 --no-merged 这两个有用的选项可以过滤这个列表中已经合并或尚未合并到当前分支的分支。如果要查看哪些分支已经合并到当前分支,可以运行 gitbranch--merged:$gitbranch--mergediss53*master查看所有包含未合并工作的分支$gitbranch--no-mergedtesting  分支切换:$gitcheckouttesting  如果在分支c1有修改且未提交前,切换分支c2,c2指向c1的当前状态(即有修改且未提交的状态),并且c1现场保存。从c2切换回c1后,c1现场恢复(即...
代码星球 代码星球·2021-02-21

git命令汇总

 =====================================================================  diff  ===================================================================== gitdiff--check            检查多余空白gitdiff--cache--check      检查多余空白 =====================================================================  log  =================================================================...
代码星球 代码星球·2021-02-21

git变基--rebase

  两个分支  先考虑不用变基的合并:$gitcheckoutmaster$gitmergeexperiment  合并后:  如果变基:(以下为变基过程)$gitcheckoutexperiment$gitrebasemasterconflictresolve$gitrebase--continue   然后再合并:$gitcheckoutmaster$gitmergeexperiment  一般我们这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁——例如向某个别人维护的项目贡献代码时。在这种情况下,你首先在自己的分支里进行开发,当开发完成时你需要先将你的代码变基到 origin/master 上,然后再向主项目提交修改。这样的话,该项目的维护者就不再需要进行整合工作,只需要快进合并便可。    上述变基过程的另一种方式:$gitrebasemasterexperimentconfictresolve$gitrebase--continue$gitcheckoutmaster$gitmergeexperiment  这样省去先切换到exper...
代码星球 代码星球·2021-02-21

git远程分支--remote

查看所有远程引用:$gitls-remoteFromssh://someone@example/testgitebf3ef7551603cd57a699e80db0bfab36d1aa7b0HEADebf3ef7551603cd57a699e80db0bfab36d1aa7b0refs/heads/master9d4073a1052c6d62d28b6802461b0f401731ccefrefs/tags/v1_tagca71d3b05cf56743b291d412e31001ec17d5e529refs/tags/v1_tag^{}跟踪远程分支:  克隆一个仓库时,它通常会自动地创建一个跟踪 origin/master 的 master 分支。  创建本地分支跟踪远程分支:gitcheckout-b[branch][remotename]/[branch]$gitcheckout-bsforigin/serverfixBranchsfsetuptotrackremotebranchserverfixfromorigin.Switchedtoa...
代码星球 代码星球·2021-02-21

git基本命令--远程

 gitclone:#clone到<本地目录名>$gitclone<版本库的网址><本地目录名>#克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用gitclone命令的-o选项指定。$gitclone-ojQueryhttps://github.com/jquery/jquery.git$gitremotejQuery  gitclone只会clonemaster分支,如果想clone所有分支gitclone后gitfetch,或者其它命令gitremote:  gitremoteadd<shortname><url> 添加一个新的远程Git仓库,<shortname>也称作“主机名”$gitremoteorigin$gitremoteaddpbhttps://github.com/paulboone/ticgit$gitremote-voriginhttps://github.com/schacon/ticgit(fetch)originhttp...
代码星球 代码星球·2021-02-21

git基本命令--status, add, diff, commit, log

gitstatus:  gitstatus命令的输出十分详细,但其用语有些繁琐。如果你使用 gitstatus-s 命令或 gitstatus--short 命令,你将得到一种更为紧凑的格式输出:  $gitstatus-sMREADMEMMRakefileAlib/git.rbMlib/simplegit.rb??LICENSE.txt ??:新添加,未跟踪右M:被修改,未放入暂存区左M:被修改,放入暂存区A:新添加,放入暂存区  gitstatus-v将会显示详细的diff情况。gitadd:  $gitadd-i#交互模式stagedunstagedpath***Commands***1:status2:update3:revert4:adduntracked5:patch6:diff7:quit8:helpWhatnow> gitdiff:  a-----,b+++++gitdiffa=staged,b=workspacegitdiff--cacheda=repository,b=stagedgitdiff--c...

gitignore

可以创建一个名为.gitignore 的文件,列出要忽略的文件模式。.gitignore 的格式规范如下:所有空行或者以 # 开头的行都会被Git忽略。可以使用标准的glob模式匹配。匹配模式可以以(/)开头防止递归。匹配模式可以以(/)结尾指定目录。要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。 所谓的glob模式是指shell所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个a,要么匹配一个b,要么匹配一个c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有0到9的数字)。使用两个星号(*)表示匹配任意中间目录,比如a/**/z 可以匹配 a/z, a/b/z 或 a/b/c/z等。我们再看一个.gitignore文件的例子:#no.afiles*.a#butdotra...
代码星球 代码星球·2021-02-21

git基本命令--tag, alias,

gittag:列出标签  在Git中列出已有的标签是非常简单直观的。只需要输入 gittag:$gittagv0.1v1.3  这个命令以字母顺序列出标签;但是它们出现的顺序并不重要。   你也可以使用特定的模式查找标签。例如,Git自身的源代码仓库包含标签的数量超过500个。如果只对1.8.5系列感兴趣,可以运行:$gittag-l'v1.8.5*'v1.8.5v1.8.5-rc0v1.8.5-rc1v1.8.5-rc2v1.8.5-rc3v1.8.5.1v1.8.5.2v1.8.5.3v1.8.5.4v1.8.5.5创建标签  Git使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。  一个轻量标签很像一个不会改变的分支-它只是一个特定提交的引用。  然而,附注标签是存储在Git数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用GNUPrivacyGuard(GPG)签名与验证。通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个...

git安装后配置--config

安装git后需要配置一下环境,每台计算机上只需要配置一次,程序升级时会保留配置信息。你可以在任何时候再次通过运行命令来修改它们。通过gitconfig命令来配置环境变量,这些变量存储在三个不同的位置:/etc/gitconfig文件:包含系统上每一个用户及他们仓库的通用配置。使用带有--system选项的gitconfig来配置该文件中的变量。~/.gitconfig或~/.config/git/config文件:只针对当前用户。可以传递--global选项让git读写此文件。当前仓库目录中的config文件(就是.git/config):不加"--参数"就是读写该文件。每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。 用户信息当安装完Git应该做的第一件事就是设置你的用户名称与邮件地址。这样做很重要,因为每一个Git的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:1$gitconfig--globaluser.name"JohnDoe"2$gi...
代码星球 代码星球·2021-02-21
首页上一页...56789...下一页尾页