w1100n
This site is best viewed in Google Chrome
wiloon, 8/9/2014 1:13 | Tag:

Git Stash用法 最近在使用Git管理项目工程的时候,遇到了很多问题,也学习到了很多关于Git常见使用的技巧,下面就其中关于Git Stash的用法和大家分享下。首先,简单介绍下Git Stash命令的用法,详细的用法在man文档中有相关介绍,下面我来说明常见的使用。git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。关于Git Stash的详细解释,适用场合,这里做一个说明: 使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用‘git stash‘就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用‘git stash apply‘将以前一半的工作应用回来。也许有的人会说,那我可不可以多次将未提交的代码压入到栈中?答案是可以的。当你多次使用‘git stash‘命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,‘git stash list‘命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用‘git stash apply stash@{1}‘就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用‘git stash clear‘来将栈清空。 在这里顺便提下git format–patch –n , n是具体某个数字, 例如 ‘git format-patch -1‘ 这时便会根据log生成一个对应的补丁,如果 ‘git format-patch -2‘ 那么便会生成2个补丁,当然前提是你的log上有至少有两个记录。 看过上面的信息,就可以知道使用场合了:当前工作区内容已被修改,但是并未完成。这时Boss来了,说前面的分支上面有一个Bug,需要立即修复。可是我又不想提交目前的修改,因为修改没有完成。但是,不提交的话,又没有办法checkout到前面的分支。此时用Git Stash就相当于备份工作区了。然后在Checkout过去修改,就能够达到保存当前工作区,并及时恢复的作用。   http://www.cppblog.com/deercoder/archive/2011/11/13/160007.html

wiloon, 8/7/2014 1:47 | Tag:

http://zhaojunde1976.blog.163.com/blog/static/12199866820136119201752/ git中的后悔方法:rebase,revert,reset 2013-07-11 09:24:06| 分类: 技术 | 标签:git |举报|字号 订阅 如果git中提交了错误代码,怎么办?有三种选择 rebase, revert, reset revert 用于直接取消指定某一次的提交,并且会形成两个历史记录,例如 git revert 5962845b0059f9e7702b73066e6a35aea1efaa49 这个命令取消了指定的提交内容,并且在当前的head后面增加了一次恢复注释 git log Revert “Change version to 0.2” This reverts commit 5962845b0059f9e7702b73066e6a35aea1efaa49. reset 可以回滚到某一次提交,而该提交之后的所有修改都会丢失,常用的方法是 git reset –hard head~3 rebase 更高级,可以重写所有的信息,不过据说也很危险,还没有真正用过,用到的时候在补充吧。

wiloon, 10/29/2012 15:58 | Tag:

目前在windows平台上的git服务器大多数采用CopSSH+MsysGit的方式来实现,当然这种方式也是最原汁原味的在windows平台上搭建git服务器的方式,提供了最高程度的安全性和灵活性。但是缺点在于搭建仍然比较麻烦,要是能有一个Git版本的类似VisualSVN的服务器搭建包相信会更有利于git在windows平台上的使用。 我在这里推荐一个目前来说部署和搭建最方便的windows版本Git服务器—gitstack。gitstack内部采用Apache HTTP server作为服务器,使用http协议对git进行封装,整合的已经比较完备,安装后简单配置一下即可使用。

wiloon, 6/25/2012 13:31 | Tag:,

Remove git from the list of backends handled by vc-mode: (delete ‘Git vc-handled-backends) or remove all source control hooks: (setq vc-handled-backends ())

wiloon, 6/4/2012 11:25 | Tag:

Choose the Run Git from the Windows Command Prompt option Choose the Use (Tortoise)Plink option Choose the Checkout as-is, commit as-is option

wiloon, 4/3/2012 10:13 | Tag:

$ git bundle create /tmp/somefile master 然后传输这个文件包, somefile ,给某个其他参与者:电子邮件,优盘,一个 xxd 打印品和一个OCR扫描仪,通过电话读字节,狼烟,等等。接收者通过键入如下命 令从文件包获取提交: $ git pull somefile 接收者甚至可以在一个空仓库做这个。不考虑大小, somefile 可以包含整个原先 git仓库。 在较大的项目里,可以通过只打包其他仓库缺少的变更消除浪费。例如,假设提交 ‘`1b6d…’’是两个参与者共享的最近提交: $ git bundle create somefile HEAD ^1b6d 如果做的频繁,人可能容易忘记刚发了哪个提交。帮助页面建议使用标签解决这个问题。 即,在你发了一个文件包后,键入: $ git tag -f lastbundle HEAD 并创建较新文件包,使用: $ git bundle … Continue reading

wiloon, 3/20/2012 10:15 | Tag:

http://wangliping.net/git-clone-spec-branch 有时git clone下来会出现很多branch,更麻烦的是如果主分支没代码那你就只能看到.git目录了。如下面的这个: $ git clone git://gitorious.org/android-eeepc/mesa.git 发现本地就只有一个.git目录,那么这个时候就需要checkout了。 进入你的本地目录,如这个是mesa,利用 $ git branch –r 查看branch信息(当然你也可以用git show-branch查看,不过有时并不好用),获得如下branch信息: origin/android origin/mesa-es origin/mesa-es-dri 此时我们需要的是android分支的代码,那么此时就要进行checkout了。 $ git checkout origin/android 你再看你的目录(mesa)下是不是有了代码了?其它的branch同理。

wiloon, 2/25/2012 21:43 | Tag:

使用 .gitignore来忽略某些文件 分类: Git Guide 2010-12-11 12:50 3169人阅读 评论(0) 收藏 举报 具体使用请看 man gitignore 一般某个项目dev过程中都会产生一些中间文件,这些文件是我们不想要追踪的。 git中可以使用.gitignore文件来忽略这些文件。 在需要的目录下面 添加 .gitignore文件 文件中每一行表示需要忽略的文件的正则表达式。 $cat .gitignore #ignore .metadata .metadata .gitignore #ignore obj and lib file *.[oa] 当前的目录情况 $ls -al total 24 drwxr-xr-x 4 root … Continue reading

wiloon, 2/25/2012 13:07 | Tag:

wiloon@debian:~/development/source/et$ git push No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as ‘master’. fatal: The remote end hung up unexpectedly error: failed to push some refs to ‘gitolite@localhost:et’   should use…. git push … Continue reading

wiloon, 11/9/2011 3:32 | Tag:

git checkout:Git的checkout有两个作用,其一是在不同的branch之间进行切换,例如’git checkout new_branch’就会切换到new_branch的分支上去;另一个功能是还原代码的作用,例如’git checkout app/model/user.rb’就会将user.rb文件从上一个已提交的版本中更新回来,未提交的内容全部会回滚 git checkout -f     //提取当前branch的所有文件. git checkout HEAD . # 将所有代码都 checkout 出來(最后一次 commit 的版本), 注意, 若有修改的代码都会被还原到上一版. (git checkout -f 亦可)

wiloon, 11/6/2011 3:04 | Tag:

git rm /xxx/xxx/xxx.xxx git rm xxx/xxx

wiloon, 11/3/2011 4:40 | Tag:

InDefero 是一个项目管理软件,可以用来跟踪bug;提供代码下载、文档浏览等功能。 Git and Subversion integration

wiloon, 11/3/2011 4:37 | Tag:

Repository write access denied manually add public key to /home/git/.ssh/authorized_keys start with : command=”python /home/www/indefero/scripts/gitserve.py USER”,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa******

wiloon, 9/27/2011 14:37 | Tag:

http://www.danstraw.com/triggering-a-hudson-build-to-run-when-git-is-updated/2010/11/23/ — Hudson CI lets you configure a build so that it periodically polls git to check whether anything’s changed. This is something of a waste of time & resources – it’s polling git when nothing has changed and there … Continue reading

wiloon, 9/27/2011 13:50 | Tag:

/var/lib/gitolite /var/gitolite /home/git/share/gitolite /etc/gitolite /usr/share/doc/gitolite /usr/share/gitolite

wiloon, 8/19/2011 0:19 | Tag:

http://davedevelopment.co.uk/2010/12/05/how-to-install-gitolite-on-ubuntu-10-10-maverick-meerkat.html At work we recently switched from subversion to Git for our version control. I wont go into it too much, but the main reasons where: We wanted a distributed system, for the flexibility it offers individuals We wanted the enhanced branch/merge Just for … Continue reading

wiloon, 5/28/2011 13:01 | Tag:

http://zensheno.blog.51cto.com/2712776/490748 http://blog.csdn.net/ithomer/article/details/7529841 http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html http://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6

wiloon, 5/4/2011 1:23 | Tag:

1. 用apt-get update 和 apt-get upgrade 更新当前系统. 2. 安装OpenSSH Server: sudo apt-get install openssh-server 3. 修改ssh服务端配置文件/etc/ssh/sshd_config Port 22 # 修改成你想要的登陆端口,如2222 PermitRootLogin no # 禁止root用户登陆 # 检查密钥的用户和权限是否正确,默认打开的 #设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有 权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限。 StrictModes yes RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥认证 … Continue reading

wiloon, 5/2/2011 4:39 | Tag:

~/.gitconfig 中加三行 [color] status = auto branch = auto ui = auto

辽ICP备14012896