git 常用命令
git clone URL | 克隆项目 |
git add . | 当前目录下所以文件,添加到暂存区 |
git commit -m "代码提交信息" | 提交暂存区到本地仓库 |
git commit -am "代码提交信息" | 添加到暂存区,并提交到本地仓库 |
git status | 查看在你上次提交之后是否有对文件进行再次修改 |
git status -s | 查看是否修改的简洁输出 |
git checkout -- . | 未执行 git add 之前的撤销(单个文件把 . 换成文件名) |
git reset HEAD | 执行 git add 后的撤销 (单个文件撤销直接在后边跟 文件路径,用 git status 查看) |
git revert commit_id | git commit 后撤销,先 git log 查看 commit_id (git revert奇数次生效,偶数次又回到之前的修改状态) |
git reset --hard commit_id | 回滚到某次提交,那该提交之后的提交都会回滚,这种覆盖是不可逆的,提交记录也都没有了(慎用) |
git branch 分支名 | 创建分支 |
git branch -v | 查看本地分支信息 |
git branch -av | 查看所有分支信息(本地和远程) |
git branch -d 分支名 | 删除本地分支 |
git branch -D 分支名 | 强制删除本地分支 |
git branch -d -r 分支名 | 删除远程分支,删除后还需推送到服务器 |
git push origin:分支名 | 删除后推送至服务器(在删除远程命令后使用) |
git push origin --delete 分支名 | 删除远程分支 |
git branch -m 旧分支名 新分支名 | 重命名本地分支 |
git branch -M 旧分支名 新分支名 | 强制重命名分支(如果新分支名已存在,那么采用-M强制重命名为新分支名) |
git checkout 分支名 | 切换到本地分支 |
git checkout -b 新分支名 | 创建并切换到新分支 |
git checkout origin/分支名 | 切换到远程分支 |
git checkout -b 本地分支名 origin/远程分支名 | 创建一个新的本地分支,并与指定的远程分支关联起来(如不成功,先执行git fetch) |
git merge 其他分支名 | 将其他分支合并到当前分支 |
git merge合并:提示输入合并信息(可以直接进入步骤3,4) | 1. 按键盘 i 键进入insert模式; 2. 修改最上面那行黄色合并信息,可以不修改; 3. 按键盘左上角“Esc”; 4. 输入“:wq”,注意是冒号+wq,按回车键即可。 |
git merge合并时文件冲突 | 1. 需要手动修改冲突文件内容; 2. 然后执行git add .; 3. git commit -m "合并日志"。 |
git diff 分支1 分支2 | 比较两个分支文件的不同 |
git fetch <远程主机名> | 将远程主机的更新全部取回本地 |
git fetch origin master | 从远程主机的master分支拉取最新内容 |
git merge FETCH_HEAD(在 git fetch 后执行) | 将拉取下来的最新内容合并到当前所在的分支中 |
git pull | 就是 git fetch 和 git merge FETCH_HEAD 的简写 |
git pull origin master:dev | 将远程主机 origin 的 master 分支拉取过来,与本地的 dev 分支合并 |
git pull origin master | 远程分支是与当前分支合并,则冒号后面的部分可以省略 |
git push origin dev:master | 将本地 dev 分支推送到 origin 主机的 master 分支上 |
git push origin master | 本地分支名与远程分支名相同的省略写法 |
git log | 查看历史提交记录 |
git log --oneline | 查看历史记录的简洁的版本 |
git log退出方法后 | 输入字母Q即可退出 |
git init | 本地项目先初始化为git项目 |
git remote add origin 远程地址 | 本地仓库与远程仓库绑定 |
git remote show origin | 查看本地仓库与远程仓库的关系 |
git 中一些选项解释
-d | --delete | 删除 |
-f | --force | 强制 |
-D | --delete --force | 强制删除 |
-m | --move | 移动或重命名 |
-M | --move --force | 强制移动或强制重命名 |
-r | --remote | 远程 |
-a | --all | 所有 |
--hard | 强制将缓存区和工作目录都同步到你指定的提交 |