# gitTest **Repository Path**: flash-ashan/git-test ## Basic Information - **Project Name**: gitTest - **Description**: No description available - **Primary Language**: JavaScript - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-17 - **Last Updated**: 2022-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # gitTest #### 命令 **git add X/.** 提交到暂存区 **git commit** 提交到本地仓库 **git branch X** 创建一条与当前分支所有提交记录相同的分支 **git checkout X** 选中分支或commit记录(X为commit记录时,会把HEAD指向X) **git checkout -b X** 创建并选中分支 **git merge X** 把X分支合并到当前分支(多父节点) **git rebase X Y** 把Y分支合并到X分支(单父节点)Y省略则为当前节点 **git rebase -i(--interactive) X** 修改当前节点到X之间的记录(不包含X),可选中或不选、改变顺序,以复制的 形式完成 **X^** X的上一个节点 **X~n** X的上n个节点 **git branch -f X Y** 把X分支移动到Y位置() **git reset X** 分支撤销到X位置(本地有效-直接移动到X位置) **git revert X** 分支撤销到X位置(远程有效-新提交一个修改成X记录的新修改记录) **git cherry-pick X Y** 把X和Y记录复制到当前记录之下(X Y为记录名) **git tag X Y** 在Y位置创建名为X的标签(省略Y则在当前位置创建) **git describe X** 查找距离X最近的tag,返回格式--- (tagName)_(距离tag的数字) _g(X的哈希值) #### 远程 **git fetch** 拉取远程仓库分支最新状态 **git pull** 拉取远程仓库分支最新状态并合并本地分支(相当于git fetch和git merge) **git pull --rebase** 相当于git fetch和git rebase **git push** 把分支最新情况推送到远程仓库 **git checkout -b totallyNotMain o/main** 创建一个名为 `totallyNotMain` 的分支,它跟踪远程分支 `o/main` **git branch -u o/main foo** `foo` 会跟踪 `o/main` ,如果当前就在 foo 分支上, 还可以省略 foo **git push origin X:Y** 把X位置推送为Y分支,同名可只写X,origin为仓库名 **git pull origin X:Y** 把远程仓库X位置下载到本地Y分支上,(规则同上)