git三剑客学习笔记

一、最小配置

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三剑客学习笔记)