作者:dawncold
发布时间:January 26, 2012
分类:技术
No Comments
打标签,挺有用的一个功能,一般是加版本号吧。v1.0,v2.0,vN.0
git tag是看标签
git tag -a 是加带附注的标签,(还有轻量级标签不用加-a,直接给出标签名字完事),接下来一个参数是标签名字,再者需要-m引出附注内容,完整就像这样:git tag -a v1.0 -m 'first version'
加完后可以show一下:git show v1.0,所谓附注就是包含了很多提交者的信息,以后可以慢慢查证使用。
如果你有GPG的话还可以签署标签,把前面的-a改成-s即可,-s是signed的意思,-a是annotated的意思。(刚刚尝试了一下-s,可惜Mac系统上没装gpg软件,签署失败,但大多linux系统都会有的吧,Mac系统的用户请从这里下载GPGTools)
刚才用GPG签名了,现在验证一下:git tag -v xxx,-v就是verify的意思,比如我得到了如下的提示信息:
object a20e6b9c2433e88a9da63abd8d74ddede9bccde6
type commit
tag v_2012-01-26-s
tagger dawncold <loooseleaves@gmail.com> 1327569076 +0800
signed this tag
gpg: 于 四 1/26 17:11:24 2012 CST 创建的签名,使用 RSA,钥匙号 1B1ECF39
gpg: 完好的签名,来自于“dawncold <loooseleaves@gmail.com>”
很可惜,默认tag是不被push到远程仓库中的,如果要分享你的tags,在push的时候要显示地写明:git push origin [tag-name],推送所有tags可以直接用--tags来代替tag-name参数
删除tag需要用-d完成:git tag -d [tag-name]
作者:dawncold
发布时间:January 26, 2012
分类:技术
No Comments
查看当前远程仓库:git remote -v,加上-v属性能看得内容详细一些。
添加远程仓库:git remote add [shortname] [url]
有了shortname,就相对于给仓库了一个别名,以后可以用别名操作,git fetch xx即可
get fetch xx是获取远程仓库中有而本地没有的数据
提送数据到远程仓库用:git push remote-name branch-name,推送的时候要注意必须没有他人在推送,且没有其他更新才行,如果他人推送了不少更新,你需要先得到更新,合并后再推送。(这里并不是说和svn一样了,只是你可以自己先在本地提交,但推送到远程服务器上时,需要按照先来后到的原则,保证每个人的提交是不冲突的,是最新的。这是我个人的理解)
远程仓库重命名、删除:git remote rename short-name new-name,git remote rm xx
另外git remote show repo-name能够得到不少信息,有哪些要合并啦,哪些已经删除啦,哪些新仓库出现啦等等,这个是需要连接服务器获取的。
作者:dawncold
发布时间:January 26, 2012
分类:技术
No Comments
修改最后一次提交:git commit --amend
如果只是提交信息写错了,运行后会让你重新写提交信息,但如果你忘记了加文件进入,可以这样做,先commit,再add忘记的文件,最后来一句git commit --amend,这看似两次提交,实际只是一次,后面的提交修正了前面的。
取消已暂存的文件:看status的时候有提示,git reset HEAD <file>,执行后可以把一个已修改的文件从暂存区拉回到“changed but not update”里,前面日志说过,在这里面的文件需要add后才能进入暂存区被提交。
取消修改:如果感觉刚才的修改没有必要,需要取消修改,那么用git checkout -- <file>,在1.6.1以上的版本才会有这样的功能,我刚刚看了下git的版本(git --version)是1.7.5.4,看来暂时不用升级就能体验了。使用后就会发现文件的修改已经被撤销,此命令很危险,如果只是想回退版本可以用stashing和分支来处理,后面再说。
最后说一句,任何被提交的数据都能被恢复,即便是在已经删除的分支中提交的等等,但没有提交的丢了就丢了!!!
作者:dawncold
发布时间:January 26, 2012
分类:技术
No Comments
就几个简单的git命令记录一下自己的学习过程,我发现如果自己不随时记录自己学到的东西就会遗忘。
首先给出git中文件的状态转换图:

对于一个文件,如果没有被git跟踪,那必然是untracked状态,只有已经是tracked状态后才会有后面的三种状态(unmodified、modified、staged(暂存状态))。
此时你如果add了一个文件进入git,那么git就会开始跟踪,那么此时这个文件是tracked状态,但没有修改,查看状态(git status)会现实new file:xxx,此时提交(commit)就会把文件快照放入历史记录中了。这里的add意思是放入暂存区,后面的add还有不同的意思。
对于已经跟踪的文件,我们修改后再查看状态,就会发现刚刚的文件被放入了一个modified那行中,样子大概是这样的:modified:xxx,同时观察一下上面几行,有这样的提示“Changed but not updated:”,意思就是修改了,但没有放入暂存区,此时需要add的另一层意思——把已修改但没放入暂存区的文件放入暂存区。
git commit -a 选项可以跳过暂存过程,直接把已经跟踪的文件放入历史记录中。
总之就是及时看status,并且要看里面的提示,只有changes to be committed后面的文件才会在commit的时候加入到历史记录中。
删除和移动文件:git rm,git mv。
改名操作与linux下的mv命令用法一样。
删除时如果仅仅希望在git中删除,实际仍然保存文件那么加上--cached选项即可。
作者:dawncold
发布时间:January 26, 2012
分类:技术
No Comments
由于某些原因(spam),这个博客系统(typecho)很容易被评论机器人俘获,几天不登陆发现已经有了上千条垃圾评论,删除都是一项繁重的工作,昨晚找了两个反垃圾评论插件都装上,现在是三个反垃圾评论插件同时工作!即便如此,还是有不少垃圾评论袭来,我只能q启用较严格的审核标准——禁止一切非中文评论,我本身就是用中文书写,所以假设有效用户就是会中文的,如果不是的话……
- «
- 1
- 2
- 3
- 4
- 5
- 6
- ...
- 47
- »