Git&GitHub-初步使用

时间:2022-10-04 05:02:15

Git

1.安装

  • 下载安装包,安装,默认安装了 Git GUI HereGit Bash Here
  • 需要在哪里使用 git,只需在文件夹空白处右键,选择Git Bash Here即可打开 git 命令行。( git 内也可以使用 cd 命令选择文件夹)

2.配置

  • 添加全局信息
$ git config --global user.email "user_email@example.com"
$ git config --global user.name "user_name"
// 必须设置邮箱和名字,否则无法 commit

3.Git命令

  • 初始化命令
$ git init  // 在现有项目中初始化 git
  • 查看状态
$ git status  // 查看当前文件状态
$ git status -s(或short) // 状态简览

状态:

  1. nothing to commit, working director clean => 工作区无文件,包括已跟踪和未跟踪
  2. Untracked files =>未跟踪的文件,可以使用 add 跟踪文件
  3. changes to be commited => 已暂存的修改,此时可以提交,且该版本的文件将会保存在log历史记录中
  4. changes not staged for commit => 已跟踪的文件修改后未处于暂存区,须再次使用 add 命令使其进入暂存区
  • 跟踪文件
$ git add .  // 跟踪所有文件,跟踪的文件将会进入暂存区;
$ git add hello.txt // 跟踪单个文件
$ git add *.js  // 跟踪所有 .js 后缀的文件
  • 提交命令
$ git commit  // 提交修改,并在log中有记录
// 执行此命令会打开一个编辑器,编辑器中按下 Esc 后输入两个大写的 Z 退出编辑
$ git commit -m "commit_word"  // 快捷提交,引号内是提交说明
$ git commit -a -m "commit_word"  // 将跟踪的文件暂存,并快捷提交
  • 推送命令
$ git push remote-name branch-name  // 推送至远程仓库的指定分支
$ git push  // 默认推送至 origin 仓库的 master 分支
// 若推送前项目的版本与clone的时候有差别(在你clone之后,push之前有其他人已经push),要先pull拉取更改,合并操作后再push(若有冲突还要解决冲突等操作)
  • 拉取命令
$ git push remote-name branch-name  // 从远程仓库的指定分支拉取
$ git push  // 默认拉取 origin 仓库的 master 分支的内容
  • 查看提交历史
$ git log  // 查看所有提交历史
$ git log -p -2 // 显示每次提交的差异,并且只显示最后两次的提交
$ git log stat  // 显示每次提交的简略信息

// 提示:大写的 Q 推出 log 命令
// 提示:可以为提交模式设置别名 alias
  • 仓库管理
$ git remote  // 列出所有指定的远程仓库简写
$ git remote -v  // 显示远程仓库的简写及其 URL
$ git remote add <short-name> <url>  // 添加远程仓库,并指定别名
$ git fetch <short-name>   // 拉取远程仓库中你没有的信息;该命令会拉取至本地仓库,需手动合并
$ git remote show <remote-name>  // 列出远程仓库的 URL 与跟踪分支的信息
$ git remote rename <old-name> <new-name>  // 更改远程仓库名字
$ git remote rm <remote-name>  // 删除指定的远程仓库
  • 分支管理
$ git branch  // 查看分支
$ git checkout <branch-name>  // 切换至指定分支
$ git checkout -b <branch-name>  // 创建并切换至分支
$ git branch <branch-name>  // 创建分支,但要手动切换
$ git branch -d <branch-name>  // 删除分支


GitHub

1.生成并配置SSH密钥:

// 1.生成密钥
$ ssh-keygen
// 2.生成密钥成功后,在C盘找到id_rsa.pub文件,打开拷贝里面的内容

// 3.打开GitHub的 Profile --> SSH and GPG keys --> New SSH key --> 粘贴密钥(title可以忽略) --> Add SSH key


2.创建第一个 GitHub 仓库

申请密钥之后,就可以关联 GitHub 上的个人仓库了,而且现在 GitHub 已经免费提供私人仓库了。

1)打开 GitHub 主页,点击 New,创建仓库

这里我没有勾选创建 README 文件,第一次关联仓库会简单点。

Git&GitHub-初步使用

2)创建完成

​ 由于没有创建 README 文件,当前的仓库是完全空的。下面也提示了可以进行的操作:

  • 创建一个本地仓库,然后关联推送到远程仓库

  • 将已有本地仓库,关联推送到远程仓库

  • 其他

    而本地仓库就是用 git init 在本地创建的仓库,远程仓库就是刚刚在 GitHub 创建的 hello-world 仓库。

    不管怎样,本地仓库都是要 关联远程仓库 之后,才能 推送 到远程仓库的,就是箭头所指的两步。

Git&GitHub-初步使用

3)本地仓库的创建

  • 创建一个文件夹,打开文件夹,在空白处右键,选择 Git Bash Here 打开 Git 命令行,初始化 Git 仓库:

Git&GitHub-初步使用

  • 接着在文件夹内创建文件 hello.txt,随便写点内容,不写也可以,然后添加文件到暂存区:

Git&GitHub-初步使用

  • 提交修改,输入提交说明:

Git&GitHub-初步使用

  • 添加远程仓库

Git&GitHub-初步使用

  • 推送至远程仓库

Git&GitHub-初步使用

  • 至此,GitHub 仓库已经存储了本地仓库推送的内容,打开 GitHub 仓库,发现一个提交记录

Git&GitHub-初步使用

  • 点击进去查看,可以看到提交的信息,和本地 git log 显示的是一样的

Git&GitHub-初步使用

3. 创建第一个 GitHub 仓库——已有 READEME

​ 1)当创建仓库时,点击了创建 READEME 文件:

Git&GitHub-初步使用

​ 2)此时仓库就不是空仓库了,而且包含了一次提交:

Git&GitHub-初步使用

​ 3)点击打开,看到一次初始化提交

Git&GitHub-初步使用

​ 4)接着复制仓库的地址:

Git&GitHub-初步使用

​ 5)本地仓库的创建,步骤一样,但是发现直接推送时出现了问题:

Git&GitHub-初步使用

​ 问题在于:本地仓库不是在远程仓库的基础上开发/提交的

  • 远程仓库有 README 文件,本地仓库没有
  • 本地仓库有 hello.txt 文件,远程仓库没有

​ 此时需要先将远程仓库的内容拉取到本地,执行 git pull,提示:没有当前分支的跟踪信息。

Git&GitHub-初步使用

先执行红框中的命令,其中 <branch> 为需要拉取的远程仓库的分支,master 为拉取至本地仓库的 master 分支:

Git&GitHub-初步使用

接着提示本地仓库的 master 分支已经跟踪至远程仓库的 master 分支,再尝试拉取:
Git&GitHub-初步使用

又出现提示:拒绝合并不相关的历史。这是在初始化远程仓库添加 READEME文件 时有了一次 commit,而本地仓库也有一次提交记录 create hello.txt ,执行命令,允许合并不相关历史,然后会执行一次 merge 操作:
Git&GitHub-初步使用

上面是 merge 后的结果,其中执行命令时会弹出默认的编辑器,如果是 Vim:输入提交信息后,按下 ESC 后再键入两个大写的 Z,会推出编辑器并且提交

Git&GitHub-初步使用

最后就可以 push 到远程仓库了:

Git&GitHub-初步使用

6)再 GitHub 上查看,文件已经推送成功了,并且提交记录变成了三条

Git&GitHub-初步使用

7)点击查看提交记录,记录是由下至上的(最上面的是最新的)

  • 最下面的是初始化仓库的提交

  • 再上一条是本地仓库的提交记录

  • 最上面的是 merge 操作

也就是说,本地仓库的提交历史写入了远程仓库提交历史中了,在本地 git log 也能查看从远程仓库合并的提交历史。

Git&GitHub-初步使用

总结: 总的来看,这种方式是比较麻烦的,一般来说,处理个人的远程仓库,直接 git clone 下来,修改完再推送上去就行了。


4. clone 个人仓库

1)拷贝仓库地址,执行命令

Git&GitHub-初步使用

这里将仓库名重命名为 clone-hello

2)进入文件目录,创建一个 local-hello.txt 文件,依次执行命令:

Git&GitHub-初步使用

本地仓库的修改就会提交到远程仓库了,另外

  • 当在 clone 远程仓库后在 push 之前的这段时间中,远程仓库发生了改变,要先 git pull 拉取远程仓库的改变,有冲突的话还要 merge,接着才能 push
  • push 的前提是本地有推送至目标仓库的权限,否则提示 Please make sure you have the correct access rights

3)在 GitHub 中查看仓库,发现文件已经推送上来了

Git&GitHub-初步使用

​4)在提交记录中,也看到了本地的提交

Git&GitHub-初步使用

总结

   熟悉一些基础的 Git 命令和 GitHub 的使用,以及记录在使用 GitHub 的过程中遇到的问题。