git常见操作--忽略文件以及常用命令【转】

转自:http://www.cnblogs.com/elfsundae/archive/2011/07/17/2099698.html

References:

http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide

http://www.kernel.org/pub/software/scm/git/docs/

http://progit.org/book/

git安装、配置用户名邮箱、SSH服务器搭建

http://www.cnblogs.com/elfsundae/archive/2011/07/06/2099182.html

Create/List/Remove a new Project/Repository

$ git init
将在当前目录创建一个隐藏的名为".git"的目录。
$ git init
project1
等价于 $ mkdir project1 && cd project1 && git
init
$ git status
检查当前目录是否包含一个git
repo
$ ls .git
查看git目录
$ rm -rf .git/
移除有关git的所有东西

Configure git to ignore files

.gitignore文件可以定义要忽略的文件。详细规则见http://www.kernel.org/pub/software/scm/git/docs/gitignore.html

过滤文件夹: /build/
过滤某种类型的文件:  *.tmp
过滤某各文件:
/Build/Products/test.app
!开头表示不过滤: !*.c , !/dir/subdir/
支持通配符: *.[oa]
过滤repo中所有以.o或者.a为扩展名的文件

有三种方法应用过滤:

  1. 对该repo的所有用户应用过滤:
    将 .gitignore 文件放在工作目录的跟目录,编辑.gitignore完成后提交
    git add
    .gitignore
  2. 仅对自己的repo备份过滤:
    添加/编辑你工作目录的$GIT_DIR/info/exclude,例如你的working
    copy目录是
    ~/src/project1 , 则路径为
    ~/src/project1/.git/info/exclude
  3. 系统全局过滤
    创建一个ignore文件,名字随意起,比如我的放在 ~/.gitglobalignore ,然后配置git:
    $
    core.excludesfile = ~/.gitglobalignore

.gitignore文件示例:

.DS_Store### build directoryiMochaApp/build/iMochaSDK/build/### Testing projects directory/Testing/

 

Getting the latest Code

$ git pull <remote> <branch> # fetches the code and merges it into                              # your working directory$ git fetch <remote> <branch> # fetches the code but does not merge                              # it into your working directory

$ git pull --tag <remote> <branch> # same as above but fetch tags as well$ git fetch --tag <remote> <branch> # you get the idea

 

Checking Out Code (clone)

$ git clone user@host.com/dir/to/repo [Target DirName]

Commit Changes

当修改了文件,你需要提交(commit)这些更改。

$ git commit source/main.c
上句将提交
./source/ 目录下的 main.c 文件。

$ git commit
-a
-a标识表示提交所有修改过的文件,但是不提交新增加的文件。新增加的文件需要使用$ git-add 将其添加到git的索引中。

“提交”仅改变你本地repo,如果要提交更改到服务器,需要使用push:
$ git
push <remote> <branch>

查看当前状态

$ git status
可以查看当前工作与那个branch,将要提交什么,提醒你忘记了什么等等...

Undo/Revert/Reset a commit

如果不想让当前的更改生效,返回之前的提交,可以运行如下命令:
# Revert to a previous commit by hash:
$
git-reset --hard <hash>

可使用 HEAD^ 快捷指定上一次提交hash:
# Revert to previous commit:
$ git-reset --hard HEAD^

文件比较

比较命令是 $ git diff

# to compare 2 revisions of a file:
$ git
diff <commit1> <commit2> <file_name>

# to compare current staged file against the repository:
$ git diff --staged <file_name>

#to compare current unstaged file against the repository:
$ git diff <file_name>

How do you see the history of revisions to a file?

$ git log -- filename

git branch
(分支)

git默认分支叫 master

# create a new branch
$ git branch
<branch-name>
# to see a list of all branches in the cureent
repoitory
$ git branch
# if you want
to switch to another branch you can use
$ git
checkout <branch-name>
# to create a new branch and switch to it
in one step
$ git checkout -b
<branch-name>
# to delete a branch:
$ git branch -d <branch-name>
# to create a
branch with the changes from the current branch,do :
$ git stash
$ git
stash branch <branch-name>

How do you merge branches?

if you want to merge a branch(e.g. "master" to "release"), make sure your
current branch is the target branch you'd like to merge into(use $git branch or $git
status to see your current branch).

Then use
$ git merge master
(where
master is the name of the branch you want to merge with the current
branch).

If there are any conflicts, you can use
$ git
diff
to see pending conflicts you have to resolve.

跟踪远程分支

假设你已经clone了一个具有 'some_branch' 分支的远端repo.下面的命令将本地跟踪这个分支:

# list remote branchesgit branch -r

# start tracking one remote branchgit branch --track some_branch origin/some_branch

# change to the branch locallygit checkout some_branch

# make changes and commit them locally....

# push your changes to the remote repository:git push

创建远程分支

# create a new branch locallygit branch name_of_branchgit checkout name_of_branch# edit/add/remove files    # ... # Commit your changes locallygit add fileNamegit commit -m Message# push changes and new branch to remote repository:git push origin name_of_branch:name_of_branch

删除远程分支

git push [远程名] :[分支名]

$ git push origin :mybranchname

作者:Elf Sundae (小糊涂)

本站采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
转载请注明:转载自 Elf
Sundae's Blog(http://www.cnblogs.com/elfsundae)
(小糊涂闲)

时间: 2024-10-12 23:33:33

git常见操作--忽略文件以及常用命令【转】的相关文章

MySQL导入.sql文件及常用命令

MySQL导入.sql文件及常用命令 转自:http://blog.csdn.net/muziduoxi/article/details/6091202  在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL:     格式: mysql -h主机地址 -u用户名 -p用户密

《UNIX编程环境》——1.2 文件和常用命令

1.2 文件和常用命令 在UNIX系统中信息存储在文件中,它很像日常的办公室文件.每个文件有名字.内容.存放地点以及某些管理信息,诸如所有者以及文件大小等.文件可能是一封信,或者是人名及地址清单,或者是源程序,或者是供某个程序用的数据,甚至是程序的可执行形式以及其他的非文本类型材料. UNIX文件组织结构使你可以维护自己的文件而不会影响其他人的文件,并且也防止他人干涉你的文件.UNIX系统有大量的程序可操作文件,但是现在,我们只介绍最频繁使用的那些.第2章是关于文件系统的具体讨论,其中介绍了许多

MySQL导入导出.sql文件及常用命令小结_Mysql

在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source c:\\test.sql; 另附mysql常用命令: (一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,

jQuery 常见操作实现方式和常用函数方法总结_jquery

jQuery 常见操作实现方式 $("标签名") //取html元素 document.getElementsByTagName("") $("#ID") //取单个控件document.getElementById("") $("div #ID") //取某个控件中 控件 $("#ID #ID") // 通过控件ID取其中的控件 $("标签.class样式名") /

Git常用命令(转)

目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 在正式介绍Git命令之前,先介绍一下Git 的基本命令和操作,对Git命令有一个总体的认识 示例:从Git 版本库的初始化,通常有两种方式: 1)git clone:这是一种较为简单的初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份 例如:git  clone  git://git

Git使用基础篇(一些常用命令和原理)_服务器其它

Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 1.Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本控制工具,或是一个强调了速度快的源代码管理工具.Gi

Git 常用命令收集

Git 的基本命令 现在我们有了本地和远程的版本库,让我们来试着用用Git的基本命令: git pull:从其他的版本库(既可以是远程的也可以是本地的)将代码更新到本地,例如:'git pull origin master'就是将origin这个版本库的代码更新到本地的master主枝,该功能类似于SVN的update git add:是将当前更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步,例如'git add app/mode

Linux文件系统及常用命令

Linux文件系统介绍: 一 .Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法.主要体现在对文件和目录的组织上.目录提供了管理文件的一个方便而有效的途径. Linux使用树状目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型.                                                               ┃  /根目录 ┏━━┳━━━┳━━━┳━━━╋━━━┳

《嵌入式 Linux应用程序开发标准教程(第2版)》——2.1 Linux常用命令

2.1 Linux常用命令 嵌入式 Linux应用程序开发标准教程(第2版) 在安装完Linux再次启动之后,就可以进入到与Windows类似的图形化界面了.这个界面就是Linux图形化界面X窗口系统(简称X)的一部分.要注意的是,X窗口系统仅仅是Linux上面的一个软件(或者也可称为服务),它不是Linux自身的一部分.虽然现在的X窗口系统已经与Linux整合得相当好了,但毕竟还不能保证绝对的可靠性.另外,X窗口系统是一个相当耗费系统资源的软件,它会大大地降低Linux的系统性能.因此,若是希