git常用操作

115 阅读2分钟

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 - 博客园