• 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
  • 相关阅读:
    我太难了
    树状数组模板
    题解 洛谷P1196 【[NOI2002]银河英雄传说】
    poj 2352 & Ural 1028 数星星 题解
    棋盘覆盖 题解
    2015 JSOI冬令营训练 彩色格子 题解
    题解 UVA12716 GCD等于XOR GCD XOR
    第一篇博客
    2019.8.26 小结
    2019.8.24 小结 (关于树状数组,线段树小结)
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5373986.html
Copyright © 2020-2023  润新知