初始化
git config --global user.name 'zhen'
git config --global user.email xxx@xxx.com
git config --list
给终端配置SSH keys
###区域
工作区(working tree)
暂存区(index file)
本地仓库(repository)
远程仓库(remote)
###底层命令
git init 新建一个隐藏的文件,包含如下文件
hooks 目录包含客户端或服务器的钩子函数
info 包含一个全局性排除文件
logs 保存日志信息
objects 目录存储所有数据内容
refs 目录存储指向数据(分支)的提交对象的指针
config 文件包含项目特有的配置选项
description 用来显示对仓库的描述信息
HEAD 文件指示目前被检出的分支
index 文件保存暂存区信息
###基础的linux指令
clear 清除屏幕
echo aaa > xxx.xxx 在文件中创建一个xxx文件,并将aaa写入该文件
ll 将当前目录下的子文件&目录平铺在控制台
find xxx 将对应文件下的子孙文件&目录平铺在控制台中
find xxx -type f 将对应目录下的文件平铺在控制台
rm xxx 删除xxx文件
mv xxx 重命名文件
cat 文件url 查看文件的内容
vim 文件的url
按i进入插入模式
按esc退出当前命令
:q!强制退出
:wq保存退出
:set nu设置行号
###git对象
###树对象
创建工作目录
对工作目录进行修改
git add ./(将工作区中的文件存放到暂存区)
git commit -m “注释内容”
git 高层命令
git init 初始化仓库
git add ./将修改添加到暂存区
git status 查看文件的状态
git log --oneline查看提交的历史记录
(多屏显示控制方式:
空格:向下翻页
b:向上翻页
q:退出)
git reflog 在oneline的基础上添加了到具体版本需要的步数
git commit -m 将暂存区提交到版本库
git reset --hard <哈希值> 切换版本到对应的哈希值
HEAD~3 向后回退3步
HEAD^ 向后回退1步
(--soft 在本地库移动HEAD指针)
(--mixed 在本地库移动HEAD指针并重置暂存区)
(--hard 在本地库移动HEAD指针并重置暂存区和工作区)
git diff 哪些修改没有暂存
###分支
并行推进多个功能开发,提高开发效率
git branch 查看现有分支
git branch <分支> 创建一个新的分支
git branch -d <分支> 删除一个空的分支
git branch -D <分支> 强制删除一个分支
git switch <分支> 切换分支
git switch -c <分支> 创建并切换到新的分支
合并
git merge <分支名> 将其他分支合并到当前分支上
git merge --no-ff 普通合并模式
存储
git stash 将现有的工作储藏起来(文件需要已追踪)
git cherry-pick <commit哈希> 将bug修改后的commit同步到dev节点
git stash list 查看该节点储藏的信息
git stash pop 将储藏起的工作复原铺(并删除stash)
上传
git remote add <简写名> <具体地址>
例:git remote add origin git@github.com:Jerry-sunzhen/addfile.git
git push <简写名/具体地址> <被传输的分支>
例:git push origin master
下载
git clone <地址>
例:git clone git@github.com:Jerry-sunzhen/addfile.git
克隆会进行三个操作
1、完整的把远程库下载到本地
2、创建Origin远程地址别名
3、初始化本地库
团队协同开发
如果团队内有其他人改动了origin中的内容,那么就不能直接push到远程仓库,首先需要将远程仓库中改动后的文件pull到本地库,然后修改可能conflict的文件,然后再次push才能成功
插入标签
git tag 查看所有已打标签
git tag <标签名> 在当前分支上打标签
git tag <标签名> <commit id> 在指定的commit id处打标签
git show <标签名> 查看对应标签的具体信息
git tag -a <标签名> -m <注释信息> <commit id> 给指定的commit id添加标签并添加注释信息
git tag -d <标签名> 删除指定标签
git push origin <标签名> 推送某个标签名到远程
git push origin --tags 将所有标签推送到远程
删除远程库中的标签,分两步
1、git tag -d <标签名> 删除本地库中的标签
2、git push origin :refs/tags/<标签名> 删除远程库中对应的标签
生成github公钥
ssh-keygen -t rsa -C 'Jerry-sunzhen@163.com'
git配置别名(alias)
例:git config --global alias.st 'status'
例:git config --global alias.lg "log --oneline --graph"