git 基本命令详细解释
阅读原文时间:2023年07月15日阅读:1

创建: 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) []

                          增加切换追踪的分支 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 显示所有分支最后一次提交
--merged 显示已合并分支,都可删除
--no-merged 显示未合并分支,不可删除。强制删除用-D
--v 查看所有本地分支分别跟踪的分支等情况

-r (--remote) 显示远程分支

-a (--all) 显示全部分支(local+remote)

 git branch [bran-name]

 创建新分支

 -d 删除分支

 git branch (-m | -M) []

 重命名本地分支

 

 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