git常用命令

115 阅读5分钟

仓库管理

  • 创建本地仓库
    git init
  • 本地仓库连接远程仓库
    git remote add origin git@github.com:yerik5101/test.git
  • 本地代码推送到远程仓库
    git push -u origin master
  • 克隆远程仓库
    git clone git@github.com:yerik5101/test.git 默认是master分支
    git clone -b dev git@github.com:yerik5101/test.git 克隆指定分支,会在本地创建dev分支,并且本地dev分支会和远程dev分支关联
  • 查看远程仓库
    git remote 增加-v查看详细信息 git remote -v

常用命令

  • 工作区、版本库
    工作区就是我们的开发目录 版本库:.git文件夹。最重要的三部分:stage暂存区、git自动创建的第一个分支master、指向master的指针HEAD
  • 常规操作
    git add test.txt                             添加到暂存区
    git commit -m "commit test"      提交到分支
    git status                                      查看仓库状态
    git diff test.txt                              对比文件
    git log                                          查看log信息
    git log --pretty=oneline              格式化输出log信息
    git reflog
    git rm test.txt                               删除文件
  • git stash: 工作只进行到一半,没法提交,又需要切换到其他分支去,这种情况可以使用git stash存储工作区
    git stash list                                  查看stash
    git stash apply                              恢复后stash内容不删除
    git stash pop                                恢复后stash内容删除

分支管理:

  • 创建分支
    git branch dev                创建本地分支,与远程分支没有关联
  • 查看分支
    git branch                      列出本地分支,当前分支前面会标一个*号
    git branch -a                  列出本地分支和远程分支
    git branch -vv                显示本地分支和远程分支的对应关系
  • 切换分支
    1. git checkout dev                          该dev分支必须在远程仓库中存在,否则会报错,切换完成后会本地dev和远程dev会自动关联
    2. git checkout -b dev                      创建本地dev分支,与远程分支没有关联。相当于2条命令:git branch dev + git checkout dev
    3. git checkout -b dev origin/dev     创建本地dev分支,并关联指定的远程分支,该命令等同于 git checkout -t origin/dev
  • 本地分支关联远程分支
    git branch --set-upstream-to=origin/dev dev
  • 分支删除
    git branch -d dev                           如果dev分支没有被合并会报错分支未被合并
    git branch -D dev                           强制删除-d换成-D
  • 分支合并
    git merge dev                                dev分支合并到master,先git checkout master切换到master分支,然后 git merge dev,git默认使用fast forward模式,这种模式删除分支后会丢失分支信息。禁用fast forward模式增加--no-ff参数,git会在merge时生成一个新的commit,这样在分支历史上可以看到分支信息 git merge --no-ff -m "merge with no-ff" dev
  • 创建远程分支
    git push origin                               本地分支名:远程分支名
    git push origin dev:dev                 需要先建立本地分支dev(本地分支和远程分支不会关联)
  • 删除远程分支
    git push origin :dev                       推送一个空分支到远程,可以达到删除的目的。
    git push --delete dev                    删除远程dev分支,与上条命令效果相同

回退操作

  • git checkout --test.txt                   丢弃工作区修改

  • git reset HEAD test.txt                  暂存区的修改撤销

  • git reset --hard HEAD(HEAD^,HEAD^^,HEAD~100)   HEAD^表示回退到上一个版本,分支提交回退

tag管理

  • 创建tag
    git tag 1.0                     创建1.0tag,默认tag是打在最新提交的commit上的
    git tag 1.0 commitId     从某次提交打tag,需要找到提交的commitId
    git tag -a 1.0 -m "message" commitId       -a tag名称 -m tag信息
  • 查看tag
    git tag             tag不是按时间顺序列出,而是按字母排序的
    git show 1.0    查看具体的tag信息
  • 删除tag
    git tag -d 1.0   删除1.0tag
  • 推送tag到远程
    git push origin 1.0           推送1.0tag到远程
    git push origin --tags      一次性推送全部尚未推送到远程的本地tag
  • 删除远程tag
    1. 先删除本地tag:      git tag -d 1.0
    2. 然后删除远程tag:   git push origin :refs/tags/1.0