zoukankan      html  css  js  c++  java
  • Git notes

    /**********************************************************************
     *                            Git notes
     * 说明:
     *     大概两年前开始知道版本控制器,自己也偶尔会用用github,但因为工
     * 作到目前为止都没有使用git之类的版本控制器,所以也一直没总结,现在
     * 公司打算用git来管理源代码,所以花点时间总结一下,方便查看。
     *
     *                                    2016-4-10 深圳 南山平山村 曾剑锋
     *********************************************************************/
    
                        \\\\-*- 目录 -*-//////////
                        |   参考文档:
                        |   一、git安装:
                        |   二、git工作模式:
                        |   三、git basis:
                        |   四、remote repo:
                        |   五、branch:
                        |   六、tag:
                        |   七、自定义git:
                        |   八、搭建git服务器:
                        ------------------------------
    
    
    参考文档:
        Git教程
            http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
    
    一、git安装:
        sudo apt-get install git
    
    二、git工作模式:
        1. git init文件夹是工作区(Working Directory);
        2. git init文件夹下的.git文件夹是版本库(Repository);
        3. .git文件夹又分为stage、实际的仓库;
    
    三、git basis:
        1. 配置git当前用户名、邮箱:
            git config --global user.name "Your Name"
            git config --global user.email "email@example.com"
        2. 创建git仓库:
            git init
        3. 文件添加到仓库:
            1. git add [[file name]...]
            2. 仅仅是将文件放入git的stage中;
        4. 提交文件到本地仓库:
            1. git commit -m <"Prompt information for this commit">
            2. 仅仅是将stage中的内容放入仓库中;
        5. 查看当前状态:
            git status
        6. 查看当前修改的文件与仓库中文件差异:
            git diff <file name>
        7. 查看历史记录:
            1. 信息比较全的方式: git log
                commit id 是SHA1计算出来的字符串;
            2. 信息精简:git log --pretty=oneline
        8. 版本回退:
            1. 回退一个版本:
                git reset --hard HEAD^
            2. 回退二个版本:
                git reset --hard HEAD^^
            3. 回退多个版本:
                git reset --hard HEAD~<回退多少个版本数>
                例:
                git reset --hard HEAD~100
        9. 版本前移:
            git reset --hard <commit id>
            例:
            git reset --hard 3628164 // commit id 只需要前面一部分就够了
        10. 查看commit id用于版本前移:
            git reflog
        11. 撤销工作区修改:
            1. git checkout -- <file name>
            2. 如果stage中有内容,就用stage中的内容;
            3. 如果stage中没内容,就用仓库中的最新的内容;
        12. 删除文件:
            git rm <file name>
        13. 恢复删除的文件:
            git checkout -- <file name>
    
    四、remote repo:
        1. 远程仓库:
            1. ssh-key:ssh-keygen -t rsa -C "youremail@example.com"2. 主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件;
            3. id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人;
            4. 登陆GitHub,打开“Account settings”,“SSH Keys”页面;
            5. 点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容;
            6. 在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。
        2. 添加远程仓库:
            1. git remote add origin <远程仓库地址>
            2. 远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库;
            3. git push -u origin master
                1. 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
                2. 如果远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:
                    git push origin master
        3. 从远程库克隆:
            git clone <远程仓库地址>
    
    五、branch:
        1. 创建分支:
            1. 仅创建分支:
                git branch <分支名>
            2. 创建并跳转到对应的分支:
                git checkout -b <分支名>
        2. 分支跳转:
            git checkout <分支名>
        3. 查看分支:
            git branch
        4. 合并分区:
            git merge <分支名>
        5. 删除分支:
            git branch -d <分支名>
        6. 查看本地远程仓库:
            1. git remote
            2. git remote -v
        7. 推送分支到远程仓率:
            1. git push origin master
            2. git push origin <分支名>
        8. 创建远程origin的dev分支到本地
            git checkout -b dev origin/dev
        9. 获取最新提交:
            1. git branch --set-upstream dev origin/<branch>
            2. git pull
    
    六、tag:
        1. 创建标签:
            1. git tag v1.0
            2. git tag v0.9 6224937
            3. git tag -a v0.1 -m "version 0.1 released" 3628164
        2. 查看标签:
            git tag
        3. 删除标签:
            git tag -d v0.1
        4. 推送标签:
            1. git push origin v1.0
            2. git push origin --tags
        5. 删除远程标签:
            1. 先从本地删除:git tag -d v0.9
            2. 删除远程标签也是push,但是格式如下:git push origin :refs/tags/v0.9
    
    七、自定义git:
        1. Git显示颜色
            git config --global color.ui true
        2. 忽略的文件:
            1. .gitignore
            2. 参考:https://github.com/github/gitignore
        3. 配置别名:
            1. git config --global alias.st status
            2. git config --global alias.co checkout
            3. git config --global alias.ci commit
            4. git config --global alias.br branch
            5. git config --global alias.unstage 'reset HEAD'
            6. git ci -m "bala bala bala..."
            7. git unstage test.py
        4. 显示log:
            git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
        5. 配置文件:
            1. 文件位置:.git/config
            2. cat .git/config 
                [core]
                    repositoryformatversion = 0
                    filemode = true
                    bare = false
                    logallrefupdates = true
                    ignorecase = true
                    precomposeunicode = true
                [remote "origin"]
                    url = git@github.com:michaelliao/learngit.git
                    fetch = +refs/heads/*:refs/remotes/origin/*
                [branch "master"]
                    remote = origin
                    merge = refs/heads/master
                [alias]
                    last = log -1
    
    八、搭建git服务器:
        1. 安装git:
            sudo apt-get install git
        2. 创建一个git用户,用来运行git服务:
            sudo adduser git
        3. 创建证书登录:
            收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
        4. 初始化Git仓库:
            sudo git init --bare sample.git
        5. 修改权限:
            sudo chown -R git:git sample.git
        6. 禁用shell登录:
            cat /etc/passwd
                git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
        7. 克隆远程仓库
            git clone git@server:/srv/sample.git
  • 相关阅读:
    ZOJ 3818 Pretty Poem
    HDU 4597 Play Game
    HDU 4497 GCD and LCM
    CSU 1335 高桥和低桥
    UVA 10791 Minimum Sum LCM
    CSU 1119 Collecting Coins
    CSU 1120 病毒
    UVA 12169 Disgruntled Judge
    HDU 1301 Jungle Roads
    POJ 1258 Agri-Net
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5373986.html
Copyright © 2011-2022 走看看