Git notes

简介: /********************************************************************** * Git notes * 说明: * 大概两年前开始知道版本控制器,自己也偶尔会用用github,但因为工 * 作到目前为止都没有使用git之类的版本控制器,所以也一直没总结,现在 * 公司打算用git来管理源代码,所以花点时间总结一下,方便查看。
/**********************************************************************
 *                            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

 

目录
相关文章
|
Shell 开发工具 git
Git for Windows v2.8.3 Release Notes
Git for Windows v2.8.3 Release Notes Latest update: May 20th 2016 Introduction These release notes describe issues specific to the Git for Windows release. The release notes covering the
3573 0
|
19天前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
4月前
|
存储 开发工具 git
|
12天前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
21 3
|
4月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
72 0
|
1月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
49 1
[Git]入门及其常用命令
|
2月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
137 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
60 0
|
3月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。