Loading

git常用操作

1. clone

// 克隆仓库
git clone [URL];

2. status

// 查看文件状态
git status;

3. 添加/移除文件

// 添加
git add [FILE];

// 移除
git rm [FILE];

// 移除(只移除版本控制,不删除文件)
git rm --cached -r [FILE];

// 恢复操作(回滚)
git reset HEAD [FILE];

// 开启不更新远程修改,不提交本地修改(关闭git跟踪)
git update-index --assume-unchanged [FILE];

// 关闭不更新远程修改,不提交本地修改(开启git跟踪)
git update-index --no-assume-unchanged [FILE];

// 开启只更新远程修改,不提交本地修改
git update-index --skip-worktree [FILE];

// 关闭只更新远程修改,不提交本地修改
git update-index --no-skip-worktree [FILE];

4. git使用

// 提交
git commit;

// 加备注提交
git commit -m ["COMMENT"];

// 获取最新版本
git pull;

// 更新服务器最新版本
git push;

5. 分支

// 查看当前所有分支及所在分支(*)
git branch;

// 创建分支(以当前分支为基准)
git branch [BRANCH];

// 创建分支,并切换到新分支
git checkout -b [BRANCH];

// 切换分支
git checkout [BRANCH];

// 删除分支
git branch -d [BRANCH];

// 删除远程分支
git push origin --delete [REMOTE_BRANCH];

// 合并分支(将某分支合并到当前分支)
git merge [BRANCH];

// 把当前修改暂存到暂存区
git stash;

// 把当前修改暂存到暂存区(加注释)
git stash save ["COMMENT"];

// 查看当前所有暂存记录
git stash list;

// 取出并删除最近一条暂存记录
git stash pop;

// 取出最近一条暂存记录
git stash apply;

// 移除暂存记录
git stash drop [STASH];

// 清空暂存记录
git stash clear;

6. 标签

// 查看已有标签
git tag;

// 创建标签
git tag [TAG];

// 删除标签
git tag -d [TAG];

// 查看此版本所有的修改内容
git show [TAG];

7. 覆盖本地代码操作

> 将'Local origin/master'库(本地版本)覆盖为与'Remote origin/master'库(远程版本)一致
git fetch --all;

> 将本地代码重置为与'Local origin/master'库(本地版本)
git reset --hard origin/master;

> 更新
git pull;

8. 合并多个commit

> 查看commit记录
git log;

> 根据输入的'commit hash'合并(不包含'START_COMMIT',包含'END_COMMIT',不输入'END_COMMIT'时合并到最后)
git rebase -i [START_COMMIT] [END_COMMIT];

> 编辑指令: 
 p, pick: 保留该commit;
 r, reword: 保留该commit, 但是需要修改该commit的注释;
 e, edit: 保留该commit, 但是需要修改该commit;
 s, squash: 将该commit和前一个commit合并;
 f, fixup: 将该commit和前一个commit合并, 但不保留该commit的注释;
 x, exec: 执行shell命令;
 d, drop: 丢弃该commit;
  
> 合并注释信息

9. cherry-pick

// 将某分支的某次提交合并到当前分支
git cherry-pick [COMMIT];

// 将某分支的最近一次提交合并到当前分支
git cherry-pick [BRANCH];

// 将多个提交合并到当前分支
git cherry-pick [COMMIT1] [COMMIT2];

/* 将两个提交之间的多个提交合并到当前分支(不包含'START_COMMIT',包含'END_COMMIT',不输入'END_COMMIT'时合并到最后,'START_COMMIT'必须早于'END_COMMIT',否则命令无效,不报错) */
git cherry-pick [START_COMMIT]..[END_COMMIT];

yoojyn - 博客园

posted @ 2022-03-08 10:30  yoojyn  阅读(36)  评论(0编辑  收藏  举报
Document