zoukankan      html  css  js  c++  java
  • 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 directory
    iMochaApp/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 branches
    git branch -r

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

    # change to the branch locally
    git checkout some_branch

    # make changes and commit them locally
    ....

    # push your changes to the remote repository:
    git push
    复制代码

    创建远程分支

    复制代码
    # create a new branch locally
    git branch name_of_branch
    git checkout name_of_branch
    # edit/add/remove files
    # ...
    # Commit your changes locally
    git add fileName
    git 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

  • 相关阅读:
    Hibernate——openSession和getCurrentSession区别
    Oracle存储过程分页 详解
    如何破解mysql数据库的密码
    Oracle约束详解
    Oracle分页查询
    Oracle如何管理权限和角色
    悲观锁和乐观锁详解
    Oracle控制结构详解
    Rose建模之各模型分析
    div布局中将页面居中的方法
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5197638.html
Copyright © 2011-2022 走看看