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

  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/pandachen/p/4065384.html
Copyright © 2011-2022 走看看