182 lines
6.1 KiB
Markdown
182 lines
6.1 KiB
Markdown
# git
|
||
git config --global credential.helper store
|
||
/\ /\ user.name " "
|
||
|| || user.email " "
|
||
配置git环境 配置整个环境
|
||
|
||
|
||
工作树 -- 暂存区 -- 本地仓库 -- 远端仓库
|
||
|
||
|
||
|
||
git status #查看当前仓库状态
|
||
|
||
git init #创建仓库
|
||
--bare <code.git> #没有工作树的选项(多用于git服务器)
|
||
|
||
git add 文件 #将文件放到暂存区
|
||
-n 演习
|
||
* 所有 新建的,删除的,修改的
|
||
. 新建的,修改的
|
||
-u 更新已追踪
|
||
-f 允许添加忽略的文件
|
||
-A, --all 添加所有已跟踪和未跟踪
|
||
|
||
|
||
git commit #将暂存区修改合成一个提交
|
||
-m "填写概要"
|
||
# 不写概要则会创建一个文件,第一行概要,第二行空,第三行详细
|
||
-am #相当于add + commit
|
||
|
||
git log #仓库日志
|
||
-a #查看所有分支的提交记录
|
||
--stat #详细
|
||
--pretty=[short/oneline] #特殊显示
|
||
--graph #更直观选项
|
||
--after="YYYY-MM-DD" #指定日期
|
||
--before="YYYY-MM-DD" #指定日期
|
||
--author="xxx" #特点作者提交
|
||
origin/master #看远端仓库的日志
|
||
文件/目录 #单独追踪
|
||
|
||
git diff #比对差异 与暂存区差异
|
||
HEAD #与本地仓库最新提交差异
|
||
|
||
git reflog #查询历史操作
|
||
|
||
git branch #显示本地分支
|
||
xxx #创建名为 xxx 的分支
|
||
-a #查看全部分支
|
||
-r #列出远端分支
|
||
-d/D #删除分支 大写强制
|
||
-m/M #修改主分支 大写强制
|
||
-u <remote>/<branch> #设置追踪关系
|
||
-vv #查看每个分支的最后提交信息和跟踪关系,常用于检查是否全部分支已同步
|
||
--merged #列出所有已合并到当前分支的分支
|
||
--no-merged #未合并
|
||
|
||
git checkout #切换分支
|
||
xxx #切换到 xxx 分支
|
||
-b xxx #创建并切换到 xxx 分支
|
||
[file] #未提交的文件撤销修改
|
||
[hash] #回退
|
||
|
||
git switch #切换分支
|
||
-c xxx #创建并切换到 xxx 分支
|
||
|
||
git merge #合并分支
|
||
xxx #将 xxx 分支合并到当前工作分支
|
||
--no-ff #在历史记录中记录合并 (尽量加这个)
|
||
--squash #将分支合并为一个提交进行合并,简化历史
|
||
--abort #假如合并过程中出现冲突,可使用这个命令终止合并
|
||
-m <message> #提交信息
|
||
--edit #创建合并提交前,允许编辑提交信息
|
||
#
|
||
# 若产生冲突,解决冲突后,需进行以下操作
|
||
# git add
|
||
# git commit
|
||
|
||
git reset #回溯
|
||
--hard HEAD~1 #撤销最后一次commit 本地仓库 and 暂存区 and 工作树
|
||
HEAD~1 #撤销最后一次commit 仅本地仓库 and 暂存区
|
||
--soft HEAD~1 #撤销最后一次commit 仅本地仓库
|
||
|
||
git revert #提交一个反commit用于撤销前面的commit
|
||
HEAD
|
||
[hash]
|
||
|
||
git rebase #变基 将一系列提交从一个分支上移植到另一个分支上
|
||
<basebranch> #将当前分支更改应用到<basebranch>分支上
|
||
-i #压缩历史 交互式变基
|
||
# -i HEAD~N #回退N次提交
|
||
--onto <newbase> <branch> #将<branch>分支变基到<newbase>上
|
||
--abort #当冲突时撤销合并
|
||
--continue #继续合并
|
||
|
||
git switch #
|
||
-c xxx #创建并切换到 xxx 分支
|
||
|
||
git stash #保存工作区当前状态
|
||
list #查看存储状态
|
||
pop #将最新一次记录恢复并删除
|
||
apply #默认恢复最新记录
|
||
clear #清除所有记录
|
||
show #看当前与栈顶差异
|
||
save xxx #提交注释
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
|
||
git clone URL #clone一个仓库
|
||
|
||
git remote #操作远程仓库
|
||
add origin URL #添加远程仓库
|
||
rm origin URL #删除远程仓库
|
||
-v #显示详细信息
|
||
|
||
git push #推送到远程
|
||
origin xxx:xxx #将 xxx 分支推送到远端 origin 仓库 本地分支:远端分支
|
||
-u origin xxx #推送同时,尝试将origin 的 xxx 设置为上游
|
||
origin xxx --delete #删除远端的xxx分支
|
||
--tags #推送全部标签
|
||
-f #强制提交
|
||
origin :xxx #删除远端 xxx 分支
|
||
|
||
git pull #拉取远端仓库 全部 = git fetch + git merge
|
||
origin xxx #直接覆盖当前工作树
|
||
--rebase #将本地分支的提交应用到拉取的提交之上,保持历史线性
|
||
--no-commit #拉取并合并代码,但不自动提交结果
|
||
--edit #创建合并提交前,允许编辑提交信息
|
||
|
||
git fetch #拉取到本地仓库中 不对工作树进行覆盖
|
||
--all #获取所有远端仓库更新
|
||
--prune #拉取更新时,清理已删除的分支
|
||
|
||
git tag #查看所有标签
|
||
-d #删除标签
|
||
[tag] #
|
||
-a #设置标签名
|
||
-m #填写标签说明
|
||
|
||
|
||
-----------------------------------------------------------------------------
|
||
|
||
.gitignore #此文件中可放置不想追踪的文件
|
||
|
||
|
||
|
||
#1:
|
||
修改了ssh端口的推送与clone
|
||
git remote add iaalai ssh://root@api.iaalai.cn:25522/root/git/code.git/
|
||
git clone ssh://root@api.iaalai.cn:25522/root/git/code.git/
|
||
|
||
#2:
|
||
搭建git服务器
|
||
1 + install git/openssh
|
||
2 + useradd git
|
||
3 + 创建证书登陆
|
||
用户: .ssh/id.rsa.pub -> 服务器:.ssh/authorized_keys 一行一个
|
||
4 + 创建仓库并移交权限给git用户
|
||
5 + 禁用登陆shll usermod -s /bin/git-shell git
|
||
|
||
#3:
|
||
工作流参考
|
||
1 + git clone 到本地仓库
|
||
2 + git checkout -b feature 创建新分支
|
||
3 + git commit -am 提交
|
||
4 + git push origin feature
|
||
当遇到主分支更新时
|
||
1 + git checkout main 切换到主分支
|
||
2 + git pull origin main 拉取最新更新
|
||
3 + git checkout feature 切换到特性分支
|
||
4 + git rebase main 尝试变基合并
|
||
5 + git push -f origin feature 强制提交特性分支
|
||
6 + Pull Request Squash and merge 合并到主分支
|
||
7 + git checkout main 切换回主分支
|
||
8 + git branch -D feature 删除特性分支
|
||
9 + git pull origin main 拉取最新主分支
|
||
|
||
#4:
|
||
开发时查看远端仓库是否更新
|
||
pull or fetch
|