git常见命令

505 阅读4分钟

版本库相关

  • 创建版本库 git init
  • .git目录默认是隐藏的,ls -ah命令就能看见了

提交文件至本地仓库区

  • git commit –m “本次提交描述”

将git add .存入暂存区修改内容提交至本地仓库中,若文件未添加至暂存区,则提交时不会提交任何修改

  • git commit –am “本次提交描述” 或 git commit –a –m“本次提交描述”

该命令会将本地工作区中修改后,还未使用git add . 命令添加到暂存区中的文件也一并提交上去

删除文件操作

  • 删除版本库中指定的文件 git rm filename 然后 git commit -m 'desc'
  • 将工作区的文件误删了,想要恢复 git checkout -- filename

工作区的文件误删了,版本库中的文件还存在

分支操作

  • 查看分支
    • git branch
  • 查看远程所有的分支 git branch -r
  • 查看远程和本地的所有分支 git branch -a

  • 切换分支
    • git checkout mp
    • git switch mp
  • 新建mp分支
  • git checkout -b mp
  • git switch -c mp
  • 删除mp分支
    • git branch -d mp
  • 删除一个没有被合并过的分支
    • git branch -D mp
  • 将代码提交到远程的mp分支
    • git push origin mp
  • 删除远程分支的mp分支
    • git push origin --delete mp
  • 在master上执行,将mp分支合并到master分支
    • git merge mp
  • git 查看远程仓库 git remote -v
  • 本地新建分支,并将本地新建的分支与远程分支代码同步 git checkout -b master origin/master

将本地代码提交到远程指定的仓库

  • git remote add origin xxx.git
  • git push -u origin master

拉取远程仓库代码,和远程所有分支

  • git clone xxx 拉取远程代码
  • git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
  • git fetch --all
  • git pull --all

代码迁移

A仓库代码迁移到B仓库
* A仓库代码拉取到本地
* git remote add B仓库的地址
* git push -u origin master 将本地代码推送到B仓库
* git push -u origin --all 将本地所有的分支推送到B远程仓库
* git push origin test 将本地的test分支推送到B仓库

代码回滚

  • 回滚到上个版本
    • git reset --hard HEAD^
    • HEAD 指向的版本就是当前版本
  • 回滚到指定的版本
    • git reset --hard 'commit_id'
  • 丢弃工作区的修改 git checkout -- filename / git restore filename

git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”

  • 丢弃暂存区的修改 git reset HEAD filename

工作区修改之后,使用了 git add 命令

git如何撤销已经push到远程仓库的代码提交

  • git log 查看需要回退到的版本号
  • git reset --soft 版本号 (soft是保留当前工作区)
  • git log 确认本地的是否已经成功撤销
  • git push origin master --force 强制提交当前版本号,以达到撤销版本号的目的
    • (master是你当前需要撤销代码的分支名)
    • 必须添加参数force进行强制提交,否则会提交失败。

bug 分支

查看历史操作

  • 查看提交历史
    • git log
  • 查看命令历史,以便确定要回到未来的哪个版本
    • git reflog

本地代码强制提交到远程仓库

 `git push -f origin master`

将本地代码添加至远程库

在github上的 AAA 仓库还是空的,我们可以从这个仓库克隆出新的仓库,也可以把一个已有的仓库与之关联,然后把本地仓库的内容推送到github仓库

git拉取远程指定分支的代码

例如,拉取远程dev分支的代码

  • 拉取远程的dev分支到本地 git fetch origin dev
  • 在本地新建l-dev分支与远程的dev分支关联 git checkout -b l-dev
  • 拉取远程dev分支的代码 git pull origin dev

工作区,版本库,暂存区概念介绍

  • 工作区:就是你在电脑里能看到的目录
  • 版本库:工作区中隐藏的有一个.git的目录,这个是git版本库
  • 暂存区:git add xxx 将文件添加到暂存区