美文网首页学习
git三剑客学习笔记

git三剑客学习笔记

作者: 蓝师傅_Android | 来源:发表于2019-03-05 10:49 被阅读0次

    一、最小配置

    git config --local 针对某个仓库
    git config --global 针对当前用户所有仓库(常用)
    git config --system 对系统所有用户的仓库都有效

    1.1、配置

    git config --global user.name "lanxiaobin"
    git config --global user.email "lanxiaobin"

    1.2、显示config配置 加 --list

    git config --list --global

    二、创建仓库并配置local用户信息

    2.1 创建git仓库

    git init gitproject/

    2.2 配置local信息

    git config user.name "localUserName" --local

    三、工作区和暂存区和commit

    3.1 从工作区添加到暂存区

    echo "readme" > readme.txt
    git add readme.txt

    3.2 暂存区文件在工作区发生修改,提交到暂存区

    git add -u 所有发生改动的暂存区文件都add

    3.3 提交到仓库

    git commit -m'add file1.txt'

    四、重命名

    git mv readme.txt readme.md

    五、gitlog

    5.1只查看第一行log信息

    git log --oneline

    5.2 --all查看所有分支的提交历史

    git log --oneline --all

    5.3 查看指定数目的历史 -n4

    git log --all -n4 --graph

    5.4 可视化

    gitk

    六、git的tree、blob

    6.1 查看文件

    find project/ type -f

    6.2 查看文件类型

    git cat-file -t b8626c4cff

    6.3 查看文件内容

    git cat-file -p b8626c4cff

    七、分支

    7.1新建分支

    git branch dev

    7.2 切换分支

    git checkout dev

    7.3 新建分支并切换到分支

    git checkout -b dev2

    7.4 删除分支

    git branch -d dev3

    八、commit

    8.1 修改最近一次commit信息

    git commit -m'首次提交'
    git commit --amend

    8.2 对历史commit修改

    git rebase -i 要修改的commit的上一个commit
    reword -- 修改提交的message

    8.3 合并连续的多个commit为一个

    git rebase -i 要合并的commit的上一个commit
    squash -- 合并几个commit为一个

    8.4 合并不连续的多个commit为一个

    ...

    九、比较

    9.1 比较工作区和暂存区文件的差异

    git diff fileName
    git diff

    9.2 比较暂存区和HEAD文件的差异

    git diff --cached

    9.3 比较不同提交的文件差异

    git diff master dev --file3.txt
    git diff commit_id1 commit_id2 -- file3.txt

    十、恢复

    10.1 暂存区恢复跟HEAD一样

    所有文件恢复

    git reset HEAD

    or

    git reset HEAD^

    部分文件恢复

    git reset HEAD file3.txt

    10.2 工作区恢复跟暂存区一样

    git checkout file3.txt

    10.3 清除最近的commit

    git log 查看最近提交的commit_id
    git reset commit_id

    10.4 删除文件

    git rm file3

    10.5 文件临时保存

    git stash
    git stash save "message"

    查看临时文件列表

    git stash list

    恢复临时文件

    git stash apply

    恢复并丢掉临时文件

    git stash pop

    11、git 备份

    哑协议 (bare:不在工作区的裸仓库)

    git clone --bare /Users/lanshifu/Documents/极客时间-课程/git三剑客/gitproject ya.git

    智能协议

    git clone --bare file:///Users/lanshifu/Documents/极客时间-课程/git三剑客/gitproject zhineng.git

    跟远端关联

    git remote add zhineng file:///Users/lanshifu/Documents/极客时间-课程/git三剑客/backup/gitproject zhineng.git


    待续...

    12.git pull 每次都要输入密码

    到git项目根目录

    git config --global credential.helper store

    git pull 输入一次密码,以后就会记住了

    13.git ssh key 配置

    cd ~/.ssh
    ls

    已经配置过

    如果没有配置过

    ssh-keygen -t rsa -C "邮箱"

    一路回车,然后

    cat ~/.ssh/id_rsa.pub

    查看ssh key

    复制去github、gitlab等网站

    git 浅克隆

    $ mkdir models # 创建一个与要clone的仓库同名或不同命的目录
    $ cd models
    $ git init #初始化
    $ git remote add origin  https://github.com/tensorflow/models.git # 增加远端的仓库地址
    $ git config core.sparsecheckout true # 设置Sparse Checkout 为true 
    $ echo "research/deeplab" >> .git/info/sparse-checkout # 将要部分clone的目录相对根目录的路径写入配置文件
    $ git pull origin master #pull下来代码
    
    

    如果只想保留最新的文件而不要历史版本的文件,上例最后一行可以用git pull --dpeth 1命令,即“浅克隆”:

    $ git pull --depth 1 origin master 
    

    git 浅克隆(2)推荐

    直接在clone后面加上 -- depth 1,表示只clone 最后一个commit

    git clone --depth 1 https://github.com/Meituan-Dianping/walle.git
    

    参考:
    https://zhuanlan.zhihu.com/p/57390306

    相关文章

      网友评论

        本文标题:git三剑客学习笔记

        本文链接:https://www.haomeiwen.com/subject/ldknuqtx.html