JC-5、Git和Github使用指南

目录

  • Git在idea中的配置及远程和本地仓库的交互
    • Git在idea中的配置
    • 远程和本地仓库的交互
    • 清空历史记录
  • Beginner
  • 1. 什么是Git和Github
  • 2. Github常见术语
    • 基本的Linux命令
  • 3. 创建并使用本地repository(存储库)
  • 4. 云端与本地存储库的交流
  • 5. 分支与合并(branch、merge)
  • 6. pull获取云端仓库某分支的更新
  • 7. 请求修改他人的云端文件(pull request)

看本文中的这个章节就可以了 :Git在idea中的配置及远程和本地仓库的交互,不懂了再看狂神笔记和我后边的CSDN内容(beginner及以后的)
笔记:视频同步笔记:狂神聊Git
视频:Git最新教程通俗易懂

Git在idea中的配置及远程和本地仓库的交互

Git在idea中的配置

  1. 首先将下载好的Git工具的bin目录加入path环境变量,以便在idea的terminal中使用git命令(仅第一次使用时操作);
    JC-5、Git和Github使用指南_第1张图片
  2. 配置用户信息(仅第一次使用时操作):JC-5、Git和Github使用指南_第2张图片
git config --global user.name "***"
git config --global user.email "***"
  1. 在idea中指定git.exe路径(仅第一次使用时操作);JC-5、Git和Github使用指南_第3张图片
  2. 重启idea即可在terminal中使用git命令。

远程和本地仓库的交互

  1. 配置ssh公钥(仅第一次使用时操作)
    JC-5、Git和Github使用指南_第4张图片

  2. 公钥提交远程(仅第一次使用时操作)
    JC-5、Git和Github使用指南_第5张图片

  3. 然后远程新建仓库后,此时仓库中只有配置文件,通过git clone到本地任意位置。
    JC-5、Git和Github使用指南_第6张图片
    JC-5、Git和Github使用指南_第7张图片
    JC-5、Git和Github使用指南_第8张图片

  4. 将这个仓库下的所有配置文件剪切到本地项目中即可建立本地与远程的连接,然后删除克隆的空文件夹,目标是将远程的配置文件拉到本地项目。
    JC-5、Git和Github使用指南_第9张图片
    JC-5、Git和Github使用指南_第10张图片

  5. 打开工程,修改.gitignore文件;

# Compiled class file
*.class
*.lock

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
target/

#idea
*.idea
*.iml

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

  1. 安装gitee插件,然后通过idea中的terminal进行git add、 git commit、git push命令即可完成上传远程()。不需要图像界面。(第一次操作需要输入密码。)
    JC-5、Git和Github使用指南_第11张图片
    JC-5、Git和Github使用指南_第12张图片
    出了add commit push三条命令外,其他命令仅在第一次构建仓库时操作。

清空历史记录

https://www.cnblogs.com/langkyeSir/p/14528857.html

Beginner

版本控制,可以创建一个远程项目,让所有成员同时独立地处理不同的功能,但在一天结束时仍然有一个稳定的运行代码。是一个解决在协作项目时曾经面临的问题的灵丹妙药。
如果你正在与一个项目的其他数据科学家合作(这种情况经常发生),那么有时你必须更新一段代码或一个功能。Git和GitHub将在这里帮助你创建更好的工作流程。无论你进行什么更改,你都可以轻松地将其提供给所有协作者。如果你输入有误,也可以随时回到以前的版本。
我的本地项目文件夹project中存放有hello world.txt和hello world.py两个文件。

1. 什么是Git和Github

Git是一种版本控制系统,可以使得一个在云端存储的项目和任何人进行交流,任何人都能下载,运行,修改云端项目,并且这些动作都会生成一些日志记录,可以在发生错误时返回之前的项目版本。针对同一项目的不同功能,这种方法很好地提供了一种多人协作的办公方式。
GitHub是版本控制平台,理解为云端项目的存储平台。

2. Github常见术语

JC-5、Git和Github使用指南_第13张图片

  1. 存储库(repo或repository),是一个文件夹,包含项目文件及修订历史,分为本地存储库和云端存储库(即GitHub上的仓库),本地库仅个人可见,云端库完全公开。存储库室友Git命令创建的,并非随便右键新建文件夹就能创建的。
  2. 克隆(clone)命令:git clone < Repo-URL >
  3. 提交(commit)命令:git commit -m “< commit message >”,将本地文件提交到本地存储库中。
  4. 推送(push)命令:git push origin < branch >,允许你将本地存储库上的所有更改传输到远程存储库上。
  5. 拉取(pull)命令:git pull < remote-repo >,将云端存储库中的更改传输到本地存储库。

基本的Linux命令

JC-5、Git和Github使用指南_第14张图片

3. 创建并使用本地repository(存储库)

  1. 下载并安装Git:https://git-scm.com/downloads
  2. 在Windows系统中,Git Bash是命令行界面,Git的所有命令都在Git Bash中键入。

在这里插入图片描述
3. 在Git Bash中键入cd后(不敲回车),将项目文件夹拖入Git Bash中的cd后,此时将产生项目文件夹的目录,手动对该目录加上英文引号(双引号单引号均可)。此时敲回车,便对本次的git操作指定了路径,即项目文件夹下(但此时并未创建出repository,还需要经过下步初始化才可创建)。

JC-5、Git和Github使用指南_第15张图片
在这里插入图片描述
4. 键入git init来行初始化,来创建一个repository(此时才生产存储库),并且是刚才指定cd路径下(即e盘的project文件夹下)的空的存储库(.Git文件夹,是隐藏文件夹)。
在这里插入图片描述
5. 键入git config --global user.name ‘Adam Wu’git config --global user.email ‘[email protected] 来指定操作者的名字和通信,此时对所有的存储库都提供该信息,若仅想对当下存储库提供,则省略global。
在这里插入图片描述
6. 键入git add 'hello world.txt’和git add ‘hello world.py’ 将project文件夹下的两个文件hello world.txt和hello world.py添加到暂存区。或者直接键入git add . 加该project文件夹下的所有文件。但此时还没有传入本地repository。
在这里插入图片描述
7. 键入git status,显示当前Git临时状态和文件状态。发现此时仍No commit yet,并且能看到添加到暂存区但还未上传的文件。JC-5、Git和Github使用指南_第16张图片
8. 键入git commit -m ‘创建注释,日志’ 后(注释和日志应简洁明了),显示两个文件已经创建在.Git文件夹。

在这里插入图片描述
9. 键入git status查看此时Git的状态,显示没有文件等待提交。
在这里插入图片描述
10. 此时我们对hello world.txt中文件进行补充: change,然后键入git add .重新添加project文件夹中的所有文件到暂存区,再键入git status查看当前Git中文件的状态,发现:虽添加到暂存区的是project中的所有文件,但仅有被修改的hello world.txt文件需要等待被提交。此时是Git避免了hello world.py文件的重复提交。再键入git commit -m '创建新注释,日志’即可完成提交与更新。
JC-5、Git和Github使用指南_第17张图片
JC-5、Git和Github使用指南_第18张图片
JC-5、Git和Github使用指南_第19张图片
11. 键入git log来获取对文件提交、更改的日志。这有利于我们发现bug在何时引入的。
JC-5、Git和Github使用指南_第20张图片

4. 云端与本地存储库的交流

  1. 首先在GitHub上创建新的存储库,可以定义该仓库的名字、简介和是否公开等属性,如下图所示。此时点击create repository便可建立一个空的仓库。
    JC-5、Git和Github使用指南_第21张图片
    JC-5、Git和Github使用指南_第22张图片
  2. 完成创建后会生成云端仓库的URL,相当于链接,然后下边会提示三种方法来给云端仓库上传文件。因为我们已经建立了本地仓库,所以仅需将本地仓库文件同步到云端即可,所以我们采用第二种方法。
    JC-5、Git和Github使用指南_第23张图片
  3. 键入git remote add origin 完成本地仓库和云端仓库的连接,并且以后可以使用origin来代替引用云端的URL。键入git push -u origin master可完成本地仓库所有内容向云端仓库的上传。此时所有用户都可以访问云端仓库。

注:若在进行本地和云端连接时URL输入错误,可通过git remote remove origin命令删除 给origin赋的URL值。下图一是我填错了URL,图二是删除了origin后重新填写URL的过程。
在这里插入图片描述
JC-5、Git和Github使用指南_第24张图片
4. 此时打开云端仓库,即可发现本地仓库文件已经导入云端。

JC-5、Git和Github使用指南_第25张图片

  1. 下载(clone)云端仓库副本的两种方法。一是直接点击绿色按钮Clone or download后再点击Download ZIP即可下载压缩包,这很简单。二是复制该仓库的URL使用Git下载,操作如下:在Git Bash中键入cd '欲下载到的文件夹路径’后回车,即可为本次Git的使用指定本地路径(参考3.3步)。此时再键入 git clone 即可完成下载

JC-5、Git和Github使用指南_第26张图片JC-5、Git和Github使用指南_第27张图片
6. 打开本地的clone文件夹即可看到下载的内容。
在这里插入图片描述
JC-5、Git和Github使用指南_第28张图片

5. 分支与合并(branch、merge)

创建分支git branch ’ branch name’相当于是对仓库文件进行拷贝,在拷贝的文件中进行操作,但却不影响原文件。这些操作可以是尝试新的功能,寻求改进方法等等。如果这些尝试是成功的,并且希望将其合并到master分支上,可以先进入master分支,再使用命令git merge -m “”将新分支合并到master分支。

  1. 进入本地仓库,cf3.3节,默认进入master分支。
    在这里插入图片描述
  2. 键入git branch loops(loops是分支名)创建loops分支。
    在这里插入图片描述
  3. 键入git branch查看所有分支。
    在这里插入图片描述
  4. 键入git checkout loops进入loops分支,注意括号中内容有master变化为loops。
    在这里插入图片描述
  5. 在hello world.py中增加for循环代码,并添加到本地仓库,此时仓库中的branch分支中的文件内容已和master分支中的不同。
    在这里插入图片描述
    JC-5、Git和Github使用指南_第29张图片
  6. 切换回master分支,打开project文件夹下的hello world.py,发现仍是修改前的内容,说明修改仅发生在branch分支,而master分支不变。尽管是project文件夹下的同一文件(并非仓库),当我们切换不同的分支时打开时的内容也不同。
    JC-5、Git和Github使用指南_第30张图片
    JC-5、Git和Github使用指南_第31张图片
  7. 在master分支下,键入 git merge loops -m ‘日志’,此时再打开project下的hello world.py发现和loops分支下的一样了。此时已将loops分支中的内容合并入master分支中了(以branch分支覆盖master分支)。当然你也可以不执行合并操作。git log显示日志。
    JC-5、Git和Github使用指南_第32张图片
    在这里插入图片描述
    JC-5、Git和Github使用指南_第33张图片
  8. 键入git push -u origin master将branch分支更新到GitHub云端仓库。
    JC-5、Git和Github使用指南_第34张图片
    补充:因之前我在云端仓库的master分支中新建了README.md文件,造成了云端和本地仓库文件不对应,所以键入git push -u origin master时出现了以下错误:
    JC-5、Git和Github使用指南_第35张图片
    解决方案是键入git pull --rebase origin master后再执行push指令:
    JC-5、Git和Github使用指南_第36张图片
    处理方法参考:https://blog.csdn.net/weixin_43211277/article/details/82715355
  9. 将在本地仓库创建的新分支loops上传至云端仓库,首先应先git checkout loops进入该分支,执行git push -u origin loops 即可。此时,在GitHub上可查看到新的loops分支。因为我并未在云端loops分支新建文件(REAMD.md等),所以本地和云端仓库的文件是对应的,所以不会发生上边push master分支的情况。
    JC-5、Git和Github使用指南_第37张图片
    JC-5、Git和Github使用指南_第38张图片
    总结:本地和云端仓库的某分支中的文件需对应才能执行push操作,否则,若云端文件有额外增加,需先pull到本地仓库的分支再执行push。若本地文件有额外增加,需先commit到本地仓库的分支中,再push到云端仓库的对应分支!

6. pull获取云端仓库某分支的更新

若云端某分支(例如master)被做修改,此时我们想把该修改同步到本地仓库的分支,需键入git pull origin master
JC-5、Git和Github使用指南_第39张图片
此时再打开文件夹中的hello world.py发现增加了行:print (‘验证pull跟新本地仓库的master分支’)。这就实现了将云端的修改更新到本地。
JC-5、Git和Github使用指南_第40张图片

7. 请求修改他人的云端文件(pull request)

本节请参考下列文章。
参考文章:
https://mp.weixin.qq.com/s/Weyd6-8xteUwf8sRMJ6puQ
https://www.analyticsvidhya.com/blog/2020/05/git-github-essential-guide-beginners/
GitHub删除分支

你可能感兴趣的:(深度学习-基础知识,git,github,数据库,python)