Git常用命令

来源:互联网 发布:管家婆软件有硬解版吗 编辑:程序博客网 时间:2024/04/24 13:58

  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 mv

git mv old_name new_name

        这个命令等效于

mv old_name new_name

git rm old_name

git add new_name


 

提交修改的代码(只是提交到本地的代码库,不会推送到服务器)

#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 checkout -b develop master  基于当前master分支,创建develop分支;

删除分支:

$ 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
默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
# git merge --no-ff develop   //增加参数--no-ff 

如果你的代码是在no branch上做的commit,后来你切换到真正的branch上(例如testbranch),这时却找不到原来在no branch上提交的代码,怎么办啊?

    解决方法:用git reflog显示近期的ref历史,记住你想要找回来的commit号,merge进来就好了。 Git reflog Git checkout testbranch Git merge commitID Git push

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文件就可以了。就像这样:

".gitignore"文件有如下规则:

  • 所有以#开头的行会被忽略
  • 可以使用glob模式匹配
  • 匹配模式后跟反斜杠(/)表示要忽略的是目录
  • 如果不要忽略某模式的文件在模式前加"!"

        比如:

# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

$ 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

3.http://www.open-open.com/lib/view/open1405048177091.html

4. http://www.ruanyifeng.com/blog/2012/07/git.html

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 cf淘宝代练封号怎么办 买音乐会的票过期怎么办 十年多年前被怨错拘留了怎么办 与室友关系闹僵怎么办 开庭后被告威胁我们证人怎么办 开车撞了豪车怎么办 我把人撞了全责怎么办 开车撞伤人没钱赔怎么办 开车撞伤无证驾驶人怎么办 开车把人撞伤了只买交强险怎么办 开车撞伤人赔不起怎么办 如果车撞死人了怎么办 给车撞了跑了怎么办 开车把人撞死了怎么办 开车把人蹭了怎么办 驾照被扣54分怎么办? 驾照被扣了12分怎么办 驾驶证丢失后被扣分怎么办 驾照扣了三十分怎么办 一次被扣了12分怎么办 驾照被扣35分后怎么办 我驾驶证扣了6分怎么办 c1驾照被扣6分怎么办 被扣了6分怎么办 今年扣了6分怎么办 驾照分不够扣了怎么办 被扣6分怎么办罚款15 驾照分数扣36分怎么办 驾照12分不够扣怎么办 驾照b证扣分了怎么办 违章18分不够扣怎么办 b2驾驶证扣11分怎么办 驾照一共扣30分怎么办 驾照扣了100分怎么办 驾照扣40多分怎么办 驾照被扣69分怎么办 驾照被扣200多分怎么办 b2驾照扣了分怎么办 驾驶证在外地被冒用怎么办 身份证被冒用办驾照怎么办 外国人在中国境内死了怎么办