Git常用命令

来源:互联网 发布:淘宝网模式 编辑:程序博客网 时间:2024/04/23 21:42

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了。

# 先在v3.0中查看要合并的commit的commit id
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

0 0