一 最小配置
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
十一 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
待续…
十二 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
复制去 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