git 基本命令详细解释
创建: 2017-04-05 17:04:03
2017-04-24
更新: 2017-05-16
更新: 2017-06-27 完善git remote add
更新: 2017-07-04 完善git pull origin master这种pull其他分支的
创建时间改为创建
增加commit与issue关联
删除远程仓库,push到其他远程仓库的分支(已有,加粗)
更新: 2017-09-02 增加rebase, 并且增加取消的说明(git rebase branch-name --abort)
更新: 2017-09-05 增加git reset 详细说明 http://blog.csdn.net/hudashi/article/details/7664464/
更新: 2017-10-28 增加git clean, git reflog show
更新: 2017-11-20 增加git commit --amend
更新: 2017-11-21 增加git rebase -i HEAD~2
更新: 2018-01-22 增加重命名本地分支 git branch (-m | -M) [<oldbranch>] <newbranch>
增加切换追踪的分支 git branch -u remote-name/branch-name
更新: 2019-02-12 补充 切换追踪的远程分支 的说明与例子
更新: 2019/03/18 补充git branch的option --all --remote
更新: 2019/05/18 补充切换跟踪分支的例
命令 | 含义 | 注释 |
git config ... | 设置本地变量 | |
git config --global ... | 设置全局变量 | |
git config --global --list | 查看全局变量 | --list = -l |
git config --list | 查看所有变量 | |
git clone [url] | 克隆已有仓库 | git clone [url] abc abc为 别名(本地文件名) |
git add | 追踪新文件或者把已修改文件暂存 | |
git commit | 将暂存文件提交到本地仓库(repository) | -a自动add,跳过上一步 -m "..."直接添加信息 |
关联issue | 信息里面增加#issue编号 | |
修改最新commit | git commit --amend | |
git diff | 查询变化 | different;-staged显示已暂存的 |
git status | 查询文件状态(修改,暂存) | -s 或者--short后为通用简写 |
git rm | 删除文件并从暂存区也删除文件 | -f 不知道什么用处,测试后没区别 |
\*~ | 所有以~结尾的文件(后缀) | \*后接的是后缀 |
\*.log | 所有以.log结尾的文件 | \*后接的是后缀 |
git mv file_from file_to | 给文件改名并应用于git | 相当于mv + git rm + git add |
git log | 查看commit(提交)历史 | -p 显示差异 -n 列出最近n次 |
git reset HEAD | 取消暂存的文件 | 尽量不要附加选项,危险 |
git checkout -- | 撤销对文件的修改 | 尽量不用,老文件会直接覆盖新文件!不可撤销 |
git remote | 查看已连接的远程仓库 | -v 附加远程仓库地址 show [remote-name] 显示某一远程分支详情 |
git remote rename | ||
git remote add 别称 网址 | 新增远程仓库 | git remote add origin ... |
git remote remove 别称 网址 | 删除远程仓库 | |
git push origin :br-name | 删除远程分支 | git push -d origin test git push --delete origin test git push origin :test三个等价 |
git push [] [] [tag-name] | 提交标签 | --tags 提交所有标签 |
git push [remote-name] [branch-name] | 将本地仓库推送到远程仓库 | 后两个默认origin和master |
git fetch [remote-name] | 从远程仓库拉取(更新) | 并不会合并到本地仓库,需要手动 |
git merge branch name | 合并fetch抓取到的信息到本地分支 | |
git rebase branch-name | 合并fetch抓取到的信息到本地分支 | 合并commit git rebase branch-name -i
HEAD~(前几次) 取消 git rebase --abort git rebase -i HEAD~2 合并commit |
git pull | 从远程仓库拉取并合并本地分支 | 拉取其他分支 git pull origin master |
git tag | 显示所有标签 | |
git tag -l ""/''/ | 检索标签 | "v1*" = 'v1*' = v1* |
git tag -a [tag-name] | 创建附注标签 | |
git tag [tag-name] | 创建轻量标枪 | |
git branch | 显示当前所有分支 |
-v 显示所有分支最后一次提交 1 -r (--remote) 显示远程分支
1 -a (--all) 显示全部分支(local+remote)
|
git branch [bran-name] | 创建新分支 | -d 删除分支 |
git branch (-m | -M) [<oldbranch>] <newbranch> | 重命名本地分支 | |
git branch -u remote-name/branch-name |
切换追踪的远程分支 (push等操作的远程对象) |
git branch -u origin/new_branch
git branch -u origin/feature/hide_public_confirmation
|
git checkout [bran-name] | 移动HEAD到当前所在分支。切换分支 | *指向当前所在分支 |
git checkout -b [bran-name] | 创建新分支并切换过去 | git branch [bran-name] git checkout [bran-name] |
git checkout -b [branch-name] [remote-name]/[branch-name] | 下拉并跟踪远程分支 | git checkout --track [remote-name]/[branch-name] 简化写法 |
git merge [bran-name] | 将指定分支合并到当前分支 | |
git reset --hard [num] | 回滚到序列号所指的版本 | [num]在这里指版本号 |
git cherry-pick [num] | 将其他分支的commit复制一份到当前分支 | [num]在这里指版本号 |
git clean -n/-f/-d | 删除没有 git add 的 文件 | -n 显示将要删除的文件和目录
-f 删除文件 -d 删除目录 |
git reflog show | 显示所有commit | |