git常用命令

本地库

  • 本地库初始化 git init

  • 设置签名

    • 项目级别 git config user.name username git config user.email email
    • 系统级别 git config –global user.name username git config –global user.email email
  • 提交到暂存区,进行追踪,可以提交 git add

  • 查看当前项目状态 git status

  • 从暂存区撤销追踪 git rm –cached filename

  • 提交到本地库中 git commit -m ‘commit message’ filename

  • 查看历史记录 git log

    • git log –pretty oneline以一行显示
    • git log –oneline 只显示当前和以前的版本信息

    • git reflog查看可以到某一个版本的步数,所有的历史记录都显示

  • 版本前进后退

    • 基于索引值

      git reset –hard [索引值]

    • 使用~符号(只能后退)

      git reset –hard HEAD~[步数]

    • 使用^符号(只能后退)

      git reset –hard HEAD^

    • reset参数区别

      • –soft

        仅仅只是在本地库移动head指针

      • –mixed

        会在本地库移动指针,也会重置暂存区

      • –hard

        会在本地库移动head指针,会重置暂存区,重置工作区

  • 文件找回

    删除一个文件后,也需要提交本地库,本地库中任何记录是都不会删除的,所以如果想恢复的话只需要使用git reset去后退版本即可。

  • 比较文件差异

    git diff [filename]和暂存区中的文件进行比较

    git diff HEAD [filename]和本地库进行比较

    git diff HEAD^ [filename]和本地库之前版本进行比较

  • 分支

    • 查看分支 git branch -v
    • 新建分支 git branch [branchName]
    • 切换分支 git checkout [branchName]
    • 合并分支
      • 首先切换到被合并的分支上
      • git merge [branchName]
    • 合并产生冲突
      • 编辑文件,删除特殊符号
      • 把文件修改到满意
      • git add [filename]
      • git commit -m ‘message’

远程库

  • 添加地址别名 git remote add [name] [content]
  • 查看别名 git remote -v
  • 推送 git push [别名] [分支]
  • 克隆远程库 git clone [项目地址]
    • 克隆项目内容
    • 初始化本地库
    • 创建original 别名 内容是项目地址
  • 拉取 pull相当于fetch和merge
    • fetch只是拉取远程库,并不会更新工作区内容,如果想看拉去下来的内容,只需要切换到远程的分支上即可,git checkout origin/[分支名]
    • merge 合并远程库到本地
    • pull 是fetch和merge集合
  • 如果当前本地库不是最新的版本,就会阻拦推送,需要先pull,如果拉取下来是冲突,需要按照本地库一样,先解决冲突,再去提交。

SSH登录

SSH只能为本地做一个账号

ssh-keygen -t rsa -C [邮箱]