Git

117 阅读5分钟

##git基本操作

常用的6个命令

git addgit commitgit pushgit checkoutgit clonegit pull

img

git 命令

命令说明
创建仓库git init初始化仓库
git clone拷贝一份远程仓库,即下载一个项目
提交与修改git add添加文件到仓库(不能添加空文件夹gi)
git status查看仓库当前的状态,显示有变更的文件
git diff比较文件的不同,即暂存区和工作区的差异
git commit提交暂存区到本地仓库
git reset回退版本
git rm删除工作区文件
git mv移动或重命名工作区文件
提交日志git log查看历史提交记录
git blame <file>以列表形式查看指定文件的历史修改记录
远程操作git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并
  • git init

    • git init:在当前目录创建 Git 仓库,并创建 master 分支
    • git init demo:在 demo 目录下创建 Git 仓库
  • git clone

    • git clone <repo>:在当前目录中克隆 repo 仓库
    • git clone <repo> <directory>:在 directory 目录下克隆 repo 仓库
  • git status

    • git status -s :以精简的方式显示文件状态,A——本地新增的文件,M——文件内容被修改了
  • git diff(以下命令可在末尾加 [file] 文件指定具体的文件)

    • git diff:尚未缓存的改动
    • git diff --cached 或 git diff --staged:查看已缓存的改动
    • git diff HEAD:查看已缓存与未缓存的所有改动
    • git diff --stat:显示摘要而非整个diff
    • git diff [first-branch]...[second-branch]:显示两次提交之间的差异
  • git commit

    • git commit -m [message]:提交暂存区到本地仓库区,message 为备注信息
    • git commit [file1] [file2] ... -m [message]:提交暂存区的指定文件到本地仓库
    • git commit -a:将修改过的文件(包括没有添加到缓存区的文件)提交到本地仓库
  • git config(去掉 global 参数则只对当前仓库有效)

    • git config --global user.name "232323":设置提交的用户名
    • git config --global user.email cyh@cyh.com:设置提交的用户邮箱
  • git reset(语法格式为:git reset [--soft | --mixed | --hard] [HEAD],mixed 为默认,可不带,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变;--soft 参数用于回退到某个版本;--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到某个版本,并删除之前的所有信息提交)

    • git reset HEAD:取消已缓存的内容
    • git reset HEAD^:回退所有内容到上一个版本
    • git reser HEAD^ [file]:回退某个文件到上一个版本
    • git reset 052e:回退到指定版本
    • git reset --hard origin/master:将本地的状态回退到和远程一样
      • 可以使用^表示版本
        • HEAD 表示当前版本
        • HEAD^ 上一个版本
        • HEAD^^ 上上一个版本
        • HEAD^^^ 上上上一个版本
      • 可以使用 ~数字表示版本
        • HEAD~0 表示当前版本
        • HEAD~1 上一个版本
        • HEAD^2 上上一个版本
        • HEAD^3 上上上一个版本
    • git rm
      • git rm <file>:将文件从暂存区和工作区中删除
      • git rm -f <file>:强行从暂存区和工作区中删除修改后的文件
      • git rm --cached <file>:将文件从暂存区中删除,在工作区中保留
      • git rm -r *:* 可以为某个目录,表示递归删除目录中的所有子目录和文件
    • git mv
      • git mv [file] [newfile]:移动或重命名一个文件、目录或软连接
      • git mv -f [file] [newfile]:当重命名文件出现重复名称时,强制重命名,删除重名文件
    • git log
      • git log:查看历史提交记录(--oneline :查看简洁版的历史提交记录,--graph:查看历史中什么时候出现了分支、合并,--reverse:逆向显示所有日志,--no-merges:隐藏合并提交)
      • git log --author=cyh:查看 cyh 用户的提交日志
      • git log --before={3.weeks.ago} --after={2021-01-01}:查看指定日期的提交日志(也可以用 --since和 --after代替 --before 和 --after)
      • git blame <file>:以列表形式查看指定文件的历史提交记录
    • git remote
      • git remote -v:显示所有远程仓库
      • git remote show [remote]:显示某个远程仓库的信息
      • git remote add [shortname] [url]:添加远程版本库
      • git remote rm name:删除远程仓库
      • git remote rename old_name new_name:修改仓库名
    • git fetch
      • git fetch [alias]:从远程仓库获取工作区中没有的数据
      • git merge [alias]/[branch]:将服务器上的更新合并到当前分支
    • git pull(相当于git fetch + git merge)
      • git pull <远程主机名> <远程分支名>:<本地分支名>:将远程主机的分支拉取过来,与本地的分支合并
      • git pull <远程主机名> <远程分支名>:远程分支与当前分支合并
    • git push
      • git push <远程主机名> <本地分支名>:<远程分支名>:将本地的分支版本上传到远程并合并
      • git push <远程主机名> <本地分支名>:将本地分支版本上传到远程并合并(远程分支与本地分支同名)

Git分支管理

  • git branch:列出分支
  • git branch (branchname):创建分支
  • git branch -d (branchname):删除分支(不能删除当前分支,要切换到其他分支才能删除当前分支)
  • git checkout(branchname):切换分支
  • git checkout -b (branchname):创建新分支并切换到该分支下

Git标签

Git标签可用于在某个重要阶段(如发布版本时)打上标签,保存提交快照,方便日后查看

  • git tag -a v1.0:给最新一次提交打上 v1.0 标签(-a 表示创建一个带注解的标签)
  • git tag -a v2.0 85fc7e7:给提交 85fc7e7 打上标签
  • git tag:查看所有标签