Git 入门

在 Git 中设置用户名 (Windows 系统)

Git 使用用户名把提交与身份相关联,Git 用户名 不等于 GitHub 用户名

git config

  • 参数

    • 默认对当前目录下仓库进行操作, 配置保存在 “此目录路径/目录名/.git/config
    • –global : 全局参数, 使用这个参数配置此计算机所有Git仓库的内容,也可以在仓库单独指定用户名和密码, 配置保存在 “C:\Users\用户名.gitconfig
    • –system : 必需在命令前使用 sudo, 针对此系统下所有用户
    • –list : 显示当前 Git 配置
    • -e [–global] : 编辑当前仓库下 (–global 全局) Git 的配置文件,当前目录下没有配置文件,返回 fatal: not in a git directory 错误
  • 配置优先级

    • 当前仓库配置 > 本地全局仓库配置 > 所有用户仓库配置

为计算机上的每个仓库设置 Git 用户名

  1. 打开 Git Bash
  2. 设置 Git 用户名 和 Email (Git Email 与 GitHub Email 一致时才被认为是同一用户,否则为另一用户创建了仓库进行操作)
    1
    2
    $ git config --global user.name "Git 用户名"
    $ git config --global user.email "Git Email"
  3. 确认/查看自己的 Git 用户名
    1
    2
    $ git config --global user.name
    demon_liu

为一个仓库设置 Git 用户名

  1. 打开 Git Bash
  2. 将当前工作目录更改为您想要在其中配置与 Git 提交关联的名称的本地仓库.
  3. 设置 Git 用户名 和 Email
    1
    2
    $ git config user.name "Git 用户名"
    $ git config user.email "Git Email"
  4. 确认/查看此仓库自己的 Git 用户名
    1
    2
    $ git config user.name
    demon_liu

连接 GitHub

关联 ssh-key 通过 SSH 加密传输

  1. 打开 Git Bash , 以下命令创建 SSH Key,
    1
    $ ssh-keygen -t rsa -C "Git Email"
  2. C://User/用户名/.ssh 下生成两个文件
    • id_rsa : 私钥,保密
    • id_rsa.pub : 公钥
  3. 在 GitHub –> Setting –> SSH and GPG Keys 页面 选择 “New SSH key”
    填上你的 标题 在 Key 文本框粘贴 公钥 (id_rsa.pub) 的内容
    SSH
    ADD_SSH
  4. 测试 ssh key 是否成功。
    1
    2
    $ ssh -T git@github.com
    Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.

创建 Git 代码库

1. 在当前目录新建一个 Git 代码库, 并初始化

1
$ git init

2. 新建一个目录作为 Git 代码库 ,并初始化

1
$ git init [目录名]

将本地分支的更新,推送到远程主机 [git push]

  • 参数 git push <远程主机名> <本地分支名>:<远程分支名>
    • 远程命令
    • 分支名称
    • 新分支名称
  • 本地的master分支推送到origin主机的master分支。如果master不存在,则会被新建。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git_push.html
    1
    $ git push origin master
  • 删除指定的远程分支 (省略本地分支名)
    1
    2
    3
    $ git push origin :master
    <==>
    $ git push orgin --delete master

克隆仓库 git clone

  • 操作命令
    1
    $ git clone [仓库 SSH / HTTPs]
  • 克隆过程
    1. 在 此路径下 创建 被克隆文件夹名的文件夹
    2. 初始化此文件夹为 Git 仓库
    3. 创建名为 origin 的远程仓库,指向用于克隆的 URL
    4. 将所有的仓库文件和提交下载到那里
    5. 检出默认分支(通常称为 master)

获取远程仓库更改,从另一个存储库下载对象和引用

  • git fetch 相当于是从远程获取最新版本到本地,不会自动合并
    • 从远程的origin的master主分支下载最新的版本到origin/master分支上
      1
      $ git fetch origin master
    • 进行合并
      1
      $ git merge origin/master
  • 更新本地工作
    • 两步更新
      • 获取远程仓库更新
        1
        $ gitfetch <远端名称>
      • 将在线更新与您的本地工作进行合并
        1
        $ git merge <远端名称>/<分支名称>
    • 一步: 获取在线更新并将其与您的本地工作进行合并
      1
      $ git pull <远端名称> <分支名称>
  • git pull [options] [<repository> [<refspec>…]] 取回远程主机某个分支的更新,再与本地的指定分支合并
    • git pull <远程主机名> <远程分支名>:<本地分支名>
      • 取回origin主机的next分支,与本地的master分支合并
        1
        $ git pull origin next:master

分支

1. git branch

  • 列出所有远程分支
    1
    $ git branch -r
  • 列出所有本地分支
    1
    $ git branch
  • 列出所有本地分支和远程分支
    1
    $ git branch -a
  • 新建一个分支 [-b 新建的同时切换到新建分支]
    1
    $ git branch [-b] <分支名称>
  • 删除分支
    1
    $ git branch -d <分支名称>
  • 删除远程分支
    1
    2
    $ git push origin --delete <分支名称>
    $ git branch -dr <remote/branch>

2. 切换分支 git checkout

  • 切换到上一个分支
    1
    $ git checkout -
  • 切换到指定分支,并更新工作区
    1
    $ git checkout <分支名称>

Git 的 基本操作 (增、删、改、提、查)

1. 增

  • git add <path> 将文件内容添加到索引(将修改添加到暂存区)

    • 添加文件/文件目录到指定暂存区
      1
      $ git add [file]/[dir]
    • 添加当前目录下所有文件到暂存区
      1
      $ git add .

2. 删

  • git rm <path> 从工作区和索引中删除文件,git rm 来删除文件,同时还会将这个删除操作记录下来;而使用 rm 来删除文件,仅仅是删除了物理文件,没有将其从 git 的记录中剔除//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/git/git_rm.html
    • 删除文件
      1
      $ git rm [filename]
    • 删除文件夹
      1
      $ git rm -r [dirname]

3. 改

  • git mv 移动或重命名文件,目录或符号链接
    • 重命名文件
      1
      $ git mv [sourcefile] [newfile]
    • 移动文件到新目录
      1
      $ git mv [sourcefile] [newdir]

4. 提交代码

  • git commint 将更改记录(提交)到存储库. 将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中.
    • 将文件暂存到仓库
      1
      $ git commit -m [message]
    • 提交暂存文件到仓库
      1
      $ git commit [filename] [] -m [message]
    • 提交工作区所有改变到仓库
      1
      $ git commit -a
    • 提交时显示改变
      1
      $ git commit -f

5. 查

  • 查看所有有改变的文件
    1
    $ git status
  • 显示所有分支的历史版本
    1
    $ git log
  • 显示commit历史,以及每次commit发生变更的文件
    1
    $ git log --stat
  • 显示暂存区和工作区的差异
    1
    $ git diff