Below you will find pages that utilize the taxonomy term “git”
July 27, 2024
一款管理 .gitignore 的CLI工具- gitig
"gitig 是一款基于 https://github.com/github/gitgnore 仓库开发的.gitignore 客户端CLI 管理工具,也是每个开发者必不可少的提高工作效率的必具工具。\n它基于官方仓库 https://github.com/github/gitgnore 丰富的 .gitignore 数据源,帮助开发者快速实现添加各类开发项目的git版本控制忽略文件清单。\n开发背景 工作中,经常需要开发各类项目,如基于 vscode 编写 rust 项目,这时为了方便进行Git管理控制,有些项目文件可能并不需要提交到git仓库,需要将一些文件写入 .gitignore 文件进行忽略。\n如果手动编辑 .gitignore文件可能有些麻烦,另外也能会有一些文件项被遗忘或写错,这时如果有一些工具可以将行业能用的忽略配置项一键写入 .gitignore 文件似乎是一个不错的主意。\n其中著名的 https://github.com/github/gitignore 就是一个专门收集各类开发语句或IDE 需要忽略的 .gitignore 推荐配置的仓库,目前star …"
May 12, 2024
git 操作中那些常常被忽略的用法
"git merge 与 git rebase 的区别 对于两者的区别,网上已经有很多文章做了介绍,不过有些初学者没有亲自实验过,多数也是作为八股文死记硬背而已。本文为了让大家彻底搞懂两者的区别,所以搞了一个实验环境并模拟了一些真实环境的操作。\n实验环境主要用到两个分支,其中 main 分支做了主要分支,而 dev 作为开发功能分支。\n在生产环境中需要选择合适的分支,这里只是实验环境,所以分支名不是本文关注的重点。\nmain dev 说明 mkdir git-demo \u0026amp;\u0026amp; cd git-demo \u0026amp;\u0026amp; git init touch 1.txt \u0026amp;\u0026amp; git add . \u0026amp;\u0026amp; git commit -m \u0026lsquo;add 1.txt\u0026rsquo; f3c82ba touch 2.txt \u0026amp;\u0026amp; git add . \u0026amp;\u0026amp; git commit -m \u0026lsquo;add 2.txt\u0026rsquo; eb061da touch 3.txt \u0026amp;\u0026amp; git add . …"
September 24, 2018
Git中的git reset的三种参数的区别
"我们平时在使用git的时候,经常会遇到需要撤销上次操作的需求,这时候需要用到git reset的这个命令,他的使用就是 “git-reset – Reset current HEAD to the specified state”, 注意这里主要操作的就是这个 HEAD。\n为了方便我们先了解一下 Git 的工作流程\n相信大家对这个图已经很熟悉了,其中index也叫stage暂存区或者暂存索引区。git reset 共有三个互斥参数分别为”–soft”、”–mixed(默认参数)” 和 “–hard”,每种参数表示一种恢复模式,下面我们将分别看一下这git reset 三个参数的用法区别。\n前提条件 我们仓库中的Git 提交顺序为 “A(a.txt) -\u0026gt; B(b.txt) -\u0026gt; C(c.txt)“,当前分支为master。 当前 HEAD 指向C,即 a47072e9f97eac4ac02c0abac82b26a9719663fc (HEAD -\u0026gt; master),我们以恢复到B(aad0c91e7b1d3577)点为准。\ntest1 git:(master) git …"
March 12, 2018
linux下git版本过底引起的无法git clone的解决方案
"刚安装的新系统,git版本为1.8.3,使用git clone命令的时候,提示“… Peer reports incompatible or unsupported protocol version”\n只需要升级一下基本包即可。\nsudo yum update nss curl # nss为名称解析和认证服务 curl为网络请求库 "
March 29, 2017
git无法pull仓库refusing to merge unrelated histories的解决办法
"在本地有一个很久的项目,需要上传到远程git仓库中,先在远程创建了一个仓库,在本地配置好后,发现上传的时候,提示先git pull 一下,但git pull的时候提示这个错误,主要是因为目前两个git仓库信息不一致问题,我们要将两个项目合并在一起,需要添加一个 –allow-unrelated-histories 参数即可。\n先进入cli命令行模式,执行\ngit pull origin master --allow-unrelated-histories 然后再执行git pull origin master 即可。\n参考: http://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories"
November 4, 2016
在linux下,解决修改文件权限引起的git出现的文件变化问题
"有时候,我们将服务器上的web文件夹的权限进行了修改,但git默认是也会记录权限状态的,这个时间用git status会发现所有的文件都处于被修改的状,这显示不是我们想要的。这时我们只要让git把文件权限忽略掉就可以了。\n在操作前首先我们确认一下当前配置项core.filemode,默认为true,(也可以使用cat .git/config查看)\n$ git config --list 然后执行\n$ git config core.filemode false 这样就设置了忽略文件权限。查看下配置:\n$ cat .git/config [] git忽略文件权限的配置"
October 31, 2016
解决git clone时报错:The requested URL returned error: 401 Unauthorized while accessing的问题
"版本问题,最直接的解决办法就是重新编辑安装git吧:\n下载: wget -O git.zip https://github.com/git/git/archive/master.zip 解压: unzip git.zip 进入git目录: cd git-master 编译安装: autoconf ./configure --prefix=/usr/local make \u0026amp;\u0026amp; make install 最后别忘了删掉旧的git,并把新版本的git建立软链接到/usr/bin/git rm /usr/bin/git ln -s /usr/local/bin/git /usr/bin/git "
October 25, 2016
git提示“Pull is not possible because you have unmerged files.”的解决办法(转)
"在git pull的过程中,如果有冲突,那么除了冲突的文件之外,其它的文件都会做为staged区的文件保存起来。\n重现:\n$ git pull\nA Applications/Commerce/BookingAnalysis.java A Applications/Commerce/ClickSummaryFormatter.java M Applications/CommerceForecasting/forecast/Forecast.java A Applications/CommerceForecasting/forecast/ForecastCurveProviderCategory.java M Applications/CommerceForecasting/forecast/ForecastProvider.java M Applications/CommerceForecasting/forecast/InputPropertyItem.java ……\nA …"
February 23, 2016
Git-svn命令对比表,svn用户必看
"提供给从svn转git的开发人员参考\nGit与Subversion的命令对比表\n操作 GIT SUBVERSION 复制数据仓库 git clone svn checkout 提交 git commit svn commit 查看提交的详细记录 git show svn cat 确认状态 git status svn status 确认差异 git diff svn diff 确认记录 git log svn log 添加 git add svn add 移动 git mv svn mv 删除 git rm svn rm 取消修改 git checkout / git reset svn revert (※1) 创建分支 git branch svn copy (※2) 切换分支 git checkout svn switch 合并 git merge svn merge 创建标签 git tag svn copy (※2) 从服务端更新本地 git pull / git fetch svn update 推送到远端 git push svn commit (※3) 忽略档案目录 ."
December 22, 2015
使用 Git Hook 实现网站的自动部署
"自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生。不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件、服务器定时任务去 build 最新的源码,还是有更高级的做法?\n目前我在使用 Git Hook 来部署自己的项目。Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用。其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本。\nGit的挂钩(Hook)主要包含:\napplypatch-msg post-update pre-rebase commit-msg pre-applypatch update post-commit pre-commit post-receive prepare-commit-msg 这里我们只需要使用 post-receive 这个 Hook:在接收 post(push)请求之后执行。\n下面是我使用 Git Hook 进行简单的自动化部署,可能还有更高级的做法,大家自己去挖掘。\n服务器上需要配置两 …"
December 22, 2015
Git中的hooks钩子
"Git可以定制一些钩子,这些钩子可以在特定的情况下被执行,分为Client端的钩子和Server端的钩子。 Client 端钩子被operation触发,比如commit,merge等Server 端钩子被网络动作触发,比如pushed commits。\n那么钩子是放在哪的呢?\n在.git/hooks/文件夹下。当你init一个仓库的时候,下边会有一些钩子的例子,以.sample结尾。\n那么钩子什么时候被执行,Git预定义了触发时机:\nClientSide hooks:\n1 pre-commit,当执行commit动作时先执行此hook,可以用此hook做一些检查,比如代码风格检查,或者先跑测试。\n2 prepare-commit-msg, 当commit时需要输入message前会触发此hook,可以用此hook来定制自己的default message信息。\n3 commit-msg,当用户输入commit的message后被触发,可以用此hook校验message的信息,比如是否符合规定,有没有cr等。\n4 post-commit, 当commit完成后被触发,可以用此hook发 …"
December 9, 2015
常用 Git 命令清单(推荐)
"作者: 阮一峰\n日期: 2015年12月 9日\n我每天使用 Git ,但是很多命令记不住。\n一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。\n下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。\nWorkspace:工作区\nIndex / Stage:暂存区\nRepository:仓库区(或本地仓库)\nRemote:远程仓库\n一、新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二、配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。\n# 显示当前的Git配置 $ git config --list # 编辑Git配置文件 $ git config -e [--global] # 设置提交代码时的用户信息 $ git config [--global] user.name …"
November 5, 2015
基于SourceTree 下的 Git Flow 模型
"gitflow 开发流程参考: http://blog.haohtml.com/archives/15317\n[][1] 基于SourceTree 下的 Git Flow 模型\nsourceTree 是一个开源的git 图形管理工具,可下载mac版本,windows版本\nGit Flow 是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具。\n基本的操作流程\n先用sourceTree 创建本地git 项目,xxxProject,\n在项目里面先提交一次 commit 一下,默认提交在了 master分支;\n然后在 sourceTree工具 右上角,点击 GitFlow,开启git Flow 规范模型的开发\n[][2]\n如上图,在开启gitFlow 之后;\n生产环境分支使用:master\n开发分支使用:develop\n当需要新增加功能,发布版本时,创建补丁修复bug时,分别有对应的 feature,release,hotfix前缀这样的分支\n这样在项目的开发过程之中,管理项目分支就变得非常的规范了;\n4:开启之后,我们的项目就回到了develop 分支,以后所的开发都在 …"
November 4, 2015
Git忽略文件权限
"默认git会记录文件的权限信息,如果文件的权限信息被修改,那么git也作为一个差异保存。但是我们有时候是不需要这方面的差异的(例如在Windows下使用Cygwin),这时需要关闭文件权限的检查。\ngit中可以加入忽略文件权限的配置,具体如下:\n$ git config core.filemode false $ git config \u0026ndash;list\n也可以使用以下命令查看是否生效。\ncat .git/config 还有一个小问题,在设置这个属性之前权限就混乱的话,是无法自动修复的。这时候,如果仅仅是权限混乱的话,直接git reset --hard恢复吧,git会将项目完全恢复到最近一次提交,包括权限。 "
November 1, 2015
git diff命令详解
"diff里面a表示前面那个变量,b表示第二个变量\nHEAD commit版本 Index staged版本\na、查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff 此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异 也就是修改之后还没有暂存起来的变化内容。\nb、查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异\ngit diff –cached git diff –staged 显示的是下一次commit时会提交到HEAD的内容(不带-a情况下)\nc、显示工作版本(Working tree)和HEAD的差别 git diff HEAD\nd、直接将两个分支上最新的提交做diff git diff topic master 或 git diff topic..master\ne、输出自topic和master分别开发以来,master分支上的changed。\ngit diff topic…master Changes that occurred on the master branch since when …"
October 19, 2015
写好 Git Commit 信息的 7 个建议
"这里推荐: http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html 介绍: 为什么好的提交信息如此重要\n当你随意浏览任一 git 仓库的日志,你很可能会发现其中的提交信息或多或少有点乱。举个例子,瞧一瞧我早先提交到 Spring 上的这些宝贝:\n$ git log –oneline -5 –author cbeams –before “Fri Mar 26 2009”\ne5f4b49 Re-adding ConfigurationPostProcessorTests after its brief removal in r814. @Ignore-ing the testCglibClassesAreLoadedJustInTimeForEnhancement() method as it turns out this was one of the culprits in the recent build breakage. The classloader hacking causes subtle …"
September 10, 2015
git中 gitignore 文件的正确用法
"使用 git 做代码管理工具时,设置 gitignore 是必不可少的流程,一些系统或者 IDE 会在目录下生成与项目不相关的文件,而这些文件我们不期望被提交到仓库之中。理解 gitignore 的 pattern 规则十分重要。\nPattern 规则 关于 Pattern 规则,可以查看 git 的相关文档: http://git-scm.com/docs/gitignore,大致有以下几点:\n空行不匹配任何内容,所以可以作为块分隔符; # 开头表示注释,如果相匹配 #,可以在前面加一个反斜杠,即 \\#; 除非加了反斜杠,否则一连串的空格会被忽略; 如果在匹配的内容前面加上 !,则这些匹配过的部分将被移出,如果要匹配以 ! 开头的内容,需要加上反斜杠,如 \\!important.txt; 如果一个匹配 pattern 后面有一个斜杠,如 foo/,则默认会匹配所有(包含父子文件夹)中的 foo 文件夹内容,并且它不会匹配单个的文件; 如果一个匹配 pattern 不包含斜杠,如 foo,Git 会将其作为一个 shell 的查找命令匹配内容。 需要注意的**: …"
June 17, 2015
git commit 与 git commit -a 的区别
"软件版本: 操作系统:ubuntu10.04 内核版本:Linux version 2.6.32-36-generic git 版本:git version 1.7.0.4\n目录:\n文件状态 提交 2.1 git commit 与 git commit -a 2.2 添加提交信息 修改/取消 参考资料 1. 文件状态\n一般仓库中的文件可能存在于这三种状态:\n1)Untracked files → 文件未被跟踪; 2)Changes to be committed → 文件已暂存,这是下次提交的内容; 3) Changes bu not updated → 文件被修改,但并没有添加到暂存区。如果 commit 时没有带 -a 选项,这个状态下的文件不会被提交。\n$git status # On branch master # Changes to be committed: # (use \u0026#34;git reset HEAD \u0026lt;file\u0026gt;...\u0026#34; to unstage) # # new file: file2 # # Changed but not updated: …"
December 23, 2013
git stash和git stash pop的用法
"推荐阅读: http://www.cppblog.com/deercoder/archive/2011/11/13/160007.html\n原文: http://gitbook.liuhui998.com/4_5.html\n一、基本操作\n当你正在做一项复杂的工作时, 发现了一个和当前工作不相关但是又很讨厌的bug. 你这时想先修复bug再做手头的工作, 那么就可以用 git stash 来保存当前的工作状态, 等你修复完bug后,执行’反储藏\u0026rsquo;(unstash)操作就可以回到之前的工作里.\n$ git stash save \u0026#34;work in progress for foo feature\u0026#34; 上面这条命令会保存你的本地修改到储藏(stash)中, 然后将你的工作目录和索引里的内容全部重置, 回到你当前所在分支的上次提交时的状态.\n好了, 你现在就可以开始你的修复工作了.\n… edit and test …\n$ git commit -a -m \u0026#34;blorpl: typofix\u0026#34; 当你修复完bug后, 你可以用git stash apply来回 …"
November 22, 2013
redmine与git组合配置
"参考:http://www.redmine.org/projects/redmine/wiki/HowTo_Easily_integrate_a_(SSH_secured)_GIT_repository_into_redmine\n在redmine 的”配置”选项里,填写git仓库位置的时候,一定要在写完整的.git路径,如 /data/www/redmine/repos/agent/.git ,否则redmine会无法发现git仓库.\n相关文章:\nhttp://blog.csdn.net/benkaoya/article/details/8762935"
August 23, 2013
Git 常用命令详解(二)
"Git Community Book 中文版 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: linux kernel),管理私人的文档和源代码也有很多优势(如: wsi-lgame-pro)\nGit 的更多介绍,请参考我的上一篇博客: Git 版本管理工具\n一、 Git 命令初识\n在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识\n示例:从Git 版本库的初始化,通常有两种方式:\n1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份\n例如:git clone git://github.com/someone/some_project.git some_project\n上面的命令就是将’git://github.com/someone/some_project.git’这个URL地址的远程版本库,完全克隆到本地some_project目录下\n2)git init 和 git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目 …"
February 27, 2013
在zend stuido下使用git插件教程
"上一节zend stuido下安装了git软件插件。下面我们来讲一下git插件的使用方法.\n由于我们目前已经创建好了git项目。所以这里只介绍直接从现成的git项目仓库导入.\n选择菜单”文件(File)”-\u0026gt;”Import”\n点击”Browse…”选择存放git的目录,然后点击”Search”按钮这样就可以读取一些git配置信息,并在上面显示出来项目目录下的所有文件.\n最后一步是选择当前项目的名字,这个随便起的。最后点击”Finish”按钮就可以了。\n这时在IDE左侧会看到项目名字及项目结构信息。\n下面可以修改一个文件,然后在左侧的导航里选择修改的文件,右键点击,选择”Team” 菜单,再选择”Commit”菜单,会弹出一个对话框,在”Commit message”对话框时里输入提示备注信息。点击”Commit”按钮就可以了。"
February 27, 2013
zend studio 安装git插件
"搞php的用zend studio这个ide工具的开发人员应该不在少数,而对于我们团队开发使用svn和git版本控制软件也特别多的。我们公司团队使用的是zendstuido 10与git这两个软件。但默认情况下zendstuido并不支持git这个插件的,这个时候需要我们来手动安装git插件。方法如下:\nzend studio菜单:Help -\u0026gt; Install new software…\n下一步会提示一些是否授受协议之类的。直接选择 我同意(i agree)就可以了。\n下面我们来讲一下如何在zend stuido下使用git插件"
January 25, 2013
git config –global push.default
"参考教程 http://blog.haohtml.com/archives/10093 刚安装的git最新版本,发现有些命令发生了一些变化.\n[web@bogon www]$ git push warning: push.default is unset; its implicit value is changing in Git 2.0 from ‘matching’ to ‘simple’. To squelch this message and maintain the current behavior after the default changes, use:\ngit config –global push.default matching\nTo squelch this message and adopt the new behavior now, use:\ngit config –global push.default simple\nSee ‘git help config’ and search for ‘push.default’ for further …"
January 25, 2013
git remote用法总结
"git remote\ngit remote显示所有的remote(加-v显示详细信息)。 git remote add [shortname] [url]用来添加remote。 git fetch [remote-name]只会pull下来全部的更动,但不会自动merge,但是git pull会自动merge。 git remote show [remote-name]可以看到一个remote的详细信息。 git remote rename old new 用来改变一个remote的名字。 git remote rm [remote-name]删除一个remote。 git remote 不带参数,列出已经存在的远程分支,例如: #git remote origin_apps\ngit remote -v | –verbose 列出详细信息,在每一个名字后面列出其远程url,例如: #git remote -v origin_apps gitolite@scm:apps/Welcome.git (fetch) origin_apps …"
August 18, 2012
git下添加新项目及用户
"我们在上一节()配置成功了git-server。这里我们新创建一个git项目并允许开者使用.\n1. 生成密钥与公钥\n***[dev1@bogon ~]$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/dev1/.ssh/id_rsa): Created directory ‘/home/dev1/.ssh’. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/dev1/.ssh/id_rsa. Your public key has been saved in /home/dev1/.ssh/id_rsa.pub. The key fingerprint is: …"
August 14, 2012
Git中gitignore失效的问题
"使用git来管理代码,但发现仓库中加入了.gitignore文件,但并不能解除对.gitignore文件中指定的路径及文件进行忽略。是因为加入.gitignore的之前已经进行过提交,提交中含有要忽略的文件,而这个时候.gitignore 对这些文件是失效的,为了解决这个问题,需要先删除这些中间文件,然后进行一次提交就可以解决这些问题了。\n在本地仓库将.gitgnore文件里指定的相关文件及路径全部删除,再commit到本机一下。然后执行push到git Server就可以了。这样就可以将git sever上的那些临时文件删除掉。以后再使用的话,产生的文件就不会在提交到git server上去了。"
July 16, 2012
SSH+Git Server on Windows – 在Windows下搭建Git服务器(教程)
"推荐软件: Windows 的 Git 服务器GitStack\n会看英文\n软件需求: 1.windowXP, win7 都测试通过 2.Copssh_3.1.4_Installer.exe 3.Git-1.7.3.1-preview20101002.exe\n搭建git服务器步骤: 1.安装copssh 1.1 我选择安装路径c:\\ICW,其他选项都选默认. 1.2 设置环境变量,系统的Path中添加C:\\ICW\\bin\n1.3 右键 我的电脑,选择 管理,打开 系统工具-\u0026gt;本地用户和组-\u0026gt;用户, 在用户窗口点击右键,选择 新用户,用户 名输入git,密码输入git. 1.4.选择git用户,右键 选属性, 点击 隶属于-\u0026gt;添加,使git用户被添加到administrator组,并拥有administrator权限. 1.5 选择 开始-\u0026gt;所有程序-\u0026gt;copssh-\u0026gt;0.1 activate a user,在user name下拉列表中选择刚刚新建的git用户,点击next,输入 Type a passhrase,并记住输入的Type a …"
July 9, 2012
在WINDOWS下使用copSSH配置GIT服务器
"近日对GIT进行了研究,发现还真是个好东东,但是在GIT服务器的配置上,在试用了多个SSH服务器之后,始终未能搞定,导致几近崩溃;最终靠着秉承“外事问谷歌,内事问百度”的理念,终于找到了一篇E文的博客,才算搞定。今把过程展示出来,希望对大家能有帮助。(注:本文严重参考了以下博客 http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/,在此表示强烈感谢) **基本原理:**使用copSSH在WINDOWS(XP)上建立SSH服务器;使用生成的“公钥-私钥”对作为身份标识;在服务器上配置SHELL脚本环境;配置客户端,加载私钥。详细过程如下: 安装前准备: Download copSSH [ SourceForge Link] (注:SSH服务器软件)\nDownload msysgit (注:WINDOWS下的git安装包) Download TortiseGIT (注:WINDOWS下的git图形化软件,与TortiseSVN是同门) Download PuTTY …"
April 7, 2012
git中的Reversing Pushed Changes
"Reversing Pushed Changes Sometimes you or somebody else might have pushed changes accidentally to the remove repository. To get rid of them, first get a log or history of the push commits:\n$ git log Then, use git reset to push back to a particular come it, identified by its SHA1 sequence from the log. For example:\n$ git reset --hard 6bb3dc30bc0c8fc36421474cf9376d658ee643aa Sometimes just the first few letters and numbers of the sequence, such as 6bb3dc would do."
April 5, 2012
Git中的fetch和pull
"Git中从远程的分支获取最新的版本到本地有这样2个命令:\n1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge\ngit fetch origin master git log -p master..origin/master git merge origin/master\n以上命令的含义:\n首先从远程的origin的master主分支下载最新的版本到origin/master分支上. 然后比较本地的master分支和origin/master分支的差别. 最后进行合并.\n上述过程其实可以用以下更清晰的方式来进行:\ngit fetch origin master:tmp git diff tmp git merge tmp\n从远程获取最新的版本到本地的test分支上 之后再进行比较合并\ngit pull:相当于是从远程获取最新版本并merge到本地 git pull origin master\n上述命令其实相当于git fetch 和 git merge 在实际使用中,git fetch更安全一些 因为在merge前,我们可以查看更新情况,然后再决定是否合并"
April 5, 2012
CentOS下搭建Git服务器Gitosis[教程]
"说明:由于条件有限,我这里使用的是同一台centos的,但教程内容基本上通用。\n1.编译安装git\ngit安装教程:\n2.安装gitosis\n$ yum install python python-setuptools $ git clone git://github.com/res0nat0r/gitosis.git $ cd gitosis $ python setup.py install 网址: https://github.com/res0nat0r/gitosis\n3.在开发机器上生成公共密钥(用来初始化gitosis)\n$ ssh-keygen -t rsa #不需要密码,一路回车就行(在本地操作) $ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上传你的ssh public key到服务器 4.初始化gitosis[服务器端]\n$ adduser git # 新增一个git用户(先添加用户组 groupadd git) $ su git # 切换倒git用户下 $ gitosis-init \u0026lt; /tmp/id_rsa.pub # …"
December 11, 2011
git init 和git –bare init 的具体区别?
"一般个人使用,用git init,这时候你的工作区也在这里。你要是想建立一个固定的地址让大家一起用,就在服务器上用git –bare init。\n其实你可以看到,init建立的.git目录内容和–bare建立的目录内容是差不多的。\n在初始化远程仓库时最好使用 git –bare init 而不要使用:git init。这样在使用hooks的时候,会有用处。\n如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset –hard才能看到push后的内容."
December 11, 2011
“remote:error:refusing to update checked out branch:refs/heads/master”的解决办法
"在使用Git Push代码到数据仓库时,提示如下错误:\n[remote rejected] master -\u0026gt; master (branch is currently checked out)\n错误原型\nremote: error: refusing to update checked out branch: refs/heads/master\nremote: error: By default, updating the current branch in a non-bare repository\nremote: error: is denied, because it will make the index and work tree inconsistent\nremote: error: with what you pushed, and will require ‘git reset –hard’ to match\nremote: error: the work tree to HEAD.\nremote: error:"
September 15, 2011
[git] Git 高级:Git Reset, Checkout, Diff, Stash
"Git Reset 有时候,你可能想要撤销 Git 操作。通常,git reset 就是你需要的命令。但是,使用 git reset 可能会非常复杂,取决于你的撤销操作。如果本文没有提到你需要的,查看 git reset 官方文档。\n假设,你正在进行一个项目,想要取消所有的改变,返回到最近一次的提交,命令如下:\n$ git reset --hard HEAD –hard flag 将指定提交(上例中,HEAD)中的任意内容放入工作目录和缓存区内。因为 HEAD 是最近一次提交,所以我们没有做任何改变。运行 git status,会看到提示没有需要提交的。\n还有其它一些 git reset 使用的 flag。假设你想要回滚你的项目到多个提交之前,但是想要保存没有提交的改变,尝试下面的:\n$ git reset --soft 3ce072c72d948abfa 当然,替换为你自己需要的 hash。–soft flag 将保存你的改变在工作目录和缓存区。换句话来说,最新的提交将会是你选择的提交。\n还有很多情况,你可以使用 git reset。如果你认为需要这个名利概念的功能,查看文档。 …"
June 29, 2011
git常用命令总结[原创]
"txt笔记一篇: git常用命令点击查看\n深入理解学习Git工作流(git-workflow-tutorial) http://segmentfault.com/a/1190000002918123\n以下教程主要参考" Git-tutor(Git使用指南): 和 http://blog.haohtml.com/archives/9066"实用指南而整理,第3章几乎直接在复制过来的.\n相关教程:\n在 CentOS 装 Git: http://blog.haohtml.com/archives/10093 在FreeBSD下安装Git: http://blog.haohtml.com/archives/10065 svn git 的windows客户端: http://blog.haohtml.com/archives/10069 第一章 Git的基本操作方法\n一.初始化仓库\ngit init\n此时会在当前目录*假如为($WORK)生成一个.git的目录文件.这个.git目录就是Git仓库.其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实 …"
June 28, 2011
在 CentOS 装 Git
"在 Ubuntu 上安装 Git 非常的简单,只需要:\nsudo apt-get install git-core\n但是 CentOS 默认的 yum 源中没有 Git,只能下载 RPM 包安装,确保已安装了依赖的包\nsudo yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel perl-ExtUtils-MakeMaker perl-CPAN tk\n安装最新的 Git\n$ wget http://www.codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.gz\n$ tar xzvf git-latest.tar.gz\n$ cd git-{date}\n$ autoconf\n$ ./configure –with-curl=/usr/local\n$ make\n$ sudo make install\n检查版本\n$ git –version\ngit version 1.7.3.GIT\n常见问题: …"
June 27, 2011
svn git 的windows客户端
"根据自己使用的操作系统是32位的还是64位的不同,需要选择软件的相应版本。\n先安装msysgit: https://git-scm.com/downloads\n再安装git windows客户端tortoisegit :\nhttp://download.tortoisegit.org/\n在安装tortoisegit的时候,选择第一个 Use(Tortoise)Plink即可。\n===================\nTortoiseGit日常使用指南: /wp-content/uploads/2011/01/TortoiseGit_Guide.pdf\n相关教程:\nGit使用教程视频: Git使用学习教程: 在 CentOS 装 Git: 在FreeBSD下安装:\n============================================================\nsvn windows客户端: http://tortoisesvn.tigris.org/"
June 27, 2011
在FreeBSD 8.1下搭建Git服务器
"Git是一个由林纳斯•托瓦兹为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。\n1、在FreeBSD8.1下安装Git服务器\n(1)用ports安装Git\ncd /usr/ports/devel/git make install clean (2)修改/etc/rc.conf,让git随开机启动\ngit_daemon_enable=”YES” (3)新增使用者git\npw useradd git (4)启用git daemon\n/usr/local/etc/rc.d/git_daemon start (5)用sockstat 来验证git是否启动\nsockstt -4l | grep 9418 root git-daemon 37064 3 tcp4 …"