GIT的配置
在使用git之前你需要配置一下git。git在你创建提交的时候会记录你的名字和email地址,所以你应该告诉git这些内容。可以使用'git config'命令来设置,如果传递参数'-global' ,它会将这些值记录在~/.gitconfig文件里,作为这些配置的默认值。
$ git config --global user.name "kevin Kuo"
$ git config --global user.email xmgqw@xxxx.com
Git常用命令
git init 或者使用git init-db。
创建一个空的Git库。在当前目录中产生一个.git 的子目录。以后,所有的文件变化信息都会保存到这个目录下,而不像CVS那样,会在每个目录和子目录下都创建一个CVS目录。
在.git目录下有一个config文件,可以修改其中的配置信息。
查看目前工作目录的代码状态,自上次提交以来的添加、修改和删除等
#git status
添加新文件到 Git 代码仓库的索引中
#git add <filename>
从工作目录和 Git 代码索引中删除文件
$ git rm filename
$ git rm –r directory 从仓库中删除文件夹
提交修改的代码(只是提交到本地的代码库,不会推送到服务器)
#git commit –a –m “修改说明”
如果觉得刚提交的“修改说明”写得不够好,可输入以下命令调整
$ git commit --amend
#git push origin<branch>
将自上次 push 以来的,本地历次 commit,推送到服务器
#git pull origin <branch>
查看自上次提交以来,本地代码改动的具体情况
# git diff
$git show branch 命令,可以使我们看到版本库中每个分支的世系发展状态, 并且可以看到每次提交的内容是否已进入每个分支。
$git whatchanged命令 来看看 master分支是怎么发展的
查看修改记录,含作者、时间、修改说明等
$ git log
结果如下:
commit eac2f939e6a1cb3189fedd19919888d998ab0431
Author: Scott Chacon<schacon@gmail.com>
Date: Sun Feb 8 07:55:57 2009 -0800
initial commit
显示最后一次 commit 修改的内容:
$ git show
显示指定 commit 修改的内容:
【TIP】git log 命令中,每条 commit 会有一长长的字符串,此即 commid id,取其前面五六位即可。
$ git show commit-id
列出所有分支(当前所在分支前会有“*”号):
$ git branch
新建分支:
$ git branch 新分支名
在某个节点新建分支
$ git branch 新分支名 eac2f939e6a1cb
删除分支:
$ git branch -d 欲删除的分支名
【注意!】不要把 ‘-d’ 写成了 ‘-D’,危险!
· -d:要求:被删除分支的所有修改,已经合并到当前分支;
· -D:直接删除,未合并的代码,将被丢弃!
恢复某个已修改的文件(撤销未提交的修改):
$ git checkout file-name
切换到另外的分支,进行开发:
$ git checkout branch-name
【注意!】该命令可能伴随大量的文件增删/修改。Windows 下,改动已被占用的文件可能会被拒绝,导致版本库出现严重问题。如果确实要这样做,安全起见,最好先注销一次。
# git checkout –f <mybranch> -f表示强制切换
Git checkout:
强制签出到master分支:Git checkout –f master
把好的点checkout成mybranch,例如:
git checkout-b mybranch 29e632c493bf83efd46ca315d0a08060988dfbab
$git merge
合并指定分支到当前分支:
既然我们为项目创建了不同的分支,那么我们就要经常地将自己或者是别人在一个分支上的工作合并 到其他的分支上去。现在我们看看怎么将 robin 分支上的工作合并到 master 分支中。现在转移我们当前的工作分支到 master,并且将 robin 分支上的工作合并进来。
$ git checkout master
$ git merge -m "Merge from robin" robin
上面的命令会将 robin 分支的改动 merge 到 master,并生成一个新的 commit 节点,这个 commit 的注释信息为 "Merge from robin"
$ git merge branch-name
revert
还原已提交的修改(已经提交过的修改,可以反悔~)
还原最近一次提交的修改:
$ git revert HEAD
还原指定版本的修改:
$ git revert commit-id
git revert===========> 是撤销某次操作,此次操作前后的的commit节点都会被保留 。这个命令在分支合并的操作中非常有用
git reset commit-id =========>将代码回退到某次提交的commid-id节点。
stash
先将未提交的修改暂存起来,接着清除所有改动,使之与没修改时一样。
若你正在开发功能 A,又需立即去开发功能 B。A 的代码正改到一半,未认真整理,你不想立即提交。此时……请呼叫 stash ~。
它会使你所有未提交的修改瞬间不见了:
$ git stash
它会使刚刚不见了的修改,瞬间又回来了:
$ git stash pop
【TIP】以上命令皆有更多参数,另有一些 Git 命令我们此处没有介绍。但是,这已足令你使用 Git 时游刃有余,你会觉得,Git 简直是一件神器!:-)
【TIP】’$ git help’ 与 ‘$ githelp 命令名’ 会在你需要的时候,无私地帮助你。:-)
$git cherry-pick -n bf0246c8 ab3f4943
# 選取您要合併的 commit
# -n 代表多個 commit
git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick了。
git log
# 假设是 commit f79b0b1ffe445cab6e531260743fa4e08fb4048b
# 切到v2.0中
git check v2.0
# 合并commit
git cherry-pick f79b0b1ffe445cab6e531260743fa4e08fb4048b
http://blog.csdn.net/basicthinker/article/details/6629508
Git 管理多个分支的公共部分 How to manage the common part of multiple branches
克隆代码库
$ git clone your-name@testing.aysaas.com:/var/projects/sandbox
Ignoring files项目里总会出现你 不想跟踪的文件。当然这些文件你不对它们进行git add操作就行了,但是这样也很麻烦, 如果使用git add .命令和git commit -a命令呢?你能告诉git去忽略一些文件,我们只需要在我们工作目录顶级创建一个.gitignore文件就可以了。就像这样:$ vi .gitignore# Lines starting with '#' are considered comments.# Ignore any file named foo.txt.foo.txt# Ignore (generated) html files,*.html# except foo.html which is maintained by hand.!foo.html# Ignore objects and archives.*.[oa]# Ignore log direction and .DS_Store files/log.DS_Store你 可以到[url]http://www.kernel.org/pub/software/scm/git/docs /gitignore.html[/url]看 gitignore的详细解释。你也可以把.ignore文件当到你工作目录里的任意tree目录里,然后你只需要把这个.ignore文件加到你的 git 控制下,使用git add命令。
http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html
1.Git中级用法:http://yangxy84.blog.163.com/blog/static/70844302011218104138320/
2.http://www.cnblogs.com/baizx/archive/2010/08/09/1796124.html