zoukankan      html  css  js  c++  java
  • git用法

    一、基本用法

    1、全局配置

    $ git config --global user.name "Your Name Comes Here"
    $ git config --global user.email you@yourdomain.example.com

    2、初始化

    $ cd project
    $ git init

    3、保存当前目录内容(快照)

    $git add . //快照为一些记录新增、修改、删除的内容的索引文件(index),保存在一个临时区域中
    $git add file1 file2 file3 //添加指定文件修改内容到索引文件中

    $git diff //查看所有不在索引文件中的修改
    $git diff --cached //查看未提交的索引文件中包含了那些修改
    $git status //查看所有未提交索引文件包含和不包含的修改信息
    $git checkout file1 //丢弃当前对file1做的修改。如果索引缓存区中有该文件修改的版本,则取回;如果没有,则从最后提交的版本(HEAD)中取回

    $git commit //提交索引,将当前目录内容的版本保存在git数据库中。注意:只要索引缓存区有修改内容的索引就可以提交,而不管索引是不是最新的,是不是全的
    $git commit -a //提交修改文件的索引,将当前目录内容的版本保存在git数据库中,不包含新文件

    4、查看修改历史

    $git log //查看修改历史
    $git log -p //查看完全的每一步的修改
    $git log --stat --summary //查看概要的修改信息

    5、创建分支

    $git branch //查看当前已有分支
    $git branch test //创建test分支
    $git checkout test //切换到test分支
    $git checkout master //切换到master分支
    $git merge test //将test分支合并到当前分支,如存在修改冲突,需要先解决冲突
    $git branch -d test //合并完成后,删除test分支
    $git branch -D test //强制删除 test 分支,不管合并没有

    6、恢复到上一次提交

    $git reset --hard HEAD^ //丢弃当前的修改和提交,恢复到上一次提交

    7、恢复本地已删除且已提交(commit)的文件

    $git checkout HEAD~1 -- welcom.txt //HEAD~1相当于HEAD^,即HEAD的上一次提交

    8、恢复本地删除还未提交(commit)的文件

    $git ls-files -d | xargs -i git checkout '{}'

    9、图形git

    $gitk

    二、分布式应用

    1、目标

    1)客户端能够将项目保存到服务器端
    2)客户端能够将对项目的修改保存到服务器端
    3)客户端能够从服务器端保存的项目下载、同步到客户端

    2、步骤

    1)建立http服务器

    http://ubuntukylin.net

    2)设置项目URL: http://ubuntukylin.net/projects/

    OS: CentOS 6.5 (注意:ubuntu12.04以后的版本配置apache的方法不一样)

    修改/etc/httpd/conf/http.conf,添加下面的配置,建立虚拟目录/projects
    Alias /projects "/data/project-git-repo"
    <Directory "/data/project-git-repo">

    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all

    </Directory>

    重启http服务
    #service httpd restart

    3)建立public repository

    $git clone --bare devconf/ devconf.git
    $touch devconf.git/git-daemon-export-ok

    $scp -r devconf.git/ wlyxs@wlyxs252:/data/project-git-repo/

    $ssh wlyxs@wlyxs252 //登陆服务器

    $chmod 0755 /data/project-git-repo -R //设置目录访问权限:rwxr_xr_x,让httpd能访问该目录及其子目录

    $cd /data/project-git-repo/devconf.git
    $git --bare update-server-info
    $mv hooks/post-update.sample hooks/post-update

    至此,可以通过http://ubuntukylin.net/projects/devconf.git访问public repository了。但是不能修改public repository中的内容,需要使用ssh

    4)使用public repository

    将修改后的项目master分支和prototype分支推送(push)到服务器端,建议设置ssh无密码登陆,否则需要输入SSH登录密码
    $git push ssh://wlyxs@ubuntukylin.net/data/projects/devconf.git master
    简化方法:
    $git remote add devconf-repo ssh://wlyxs@ubuntukylin.net/data/project-git-repo/devconf.git
    $git push devconf-repo master

    推送prototype分支
    $git push ssh://wlyxs@ubuntukylin.net/data/projects/devconf.git prototype:prototype

    将项目主分支master克隆到客户端本地,客户端原来没有项目
    $git clone http://ubuntukylin.net/projects/devconf.git

    将项目分支prototype克隆到客户端本地,客户端原来没有项目
    $git clone http://ubuntukylin.net/projects/devconf.git -b prototype

    将服务器端repository中修改过的项目同步(pull)到客户端的repository中,客户端原来有项目
    $git pull http://ubuntukylin.net/projects/devconf.git master 

    三、技巧

    1、自动完成
    下载 Git 的源代码,进入 contrib/completion 目录,会看到一个 git-completion.bash 文件。将此文件复制到你自己的用户主目录中(译注:按照下面的示例,还应改名加上点:cp git-completion.bash ∼/.git-completion.bash),并把下面一行内容添加到你的 .bashrc 文件中:
    source ~/.git-completion.bash

    (未完待续)

    =-=-=-=-=
    Powered by Blogilo

  • 相关阅读:
    快速创建MockAPI
    Eolinker SaaS 7.5 版本更新
    【翻译】几个优质的REST API工具
    建立RESTful API测试程序的基础
    Ubuntu下gcc安装及使用
    c++转化成delphi的代码
    VCL组件的属性和方法详解
    Delphi组件开发教程指南目录
    FASM 第一章 简介
    (一)SQL 基础知识
  • 原文地址:https://www.cnblogs.com/pandachen/p/4065384.html
Copyright © 2011-2022 走看看