ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

尚硅谷Git学习笔记

2022-07-09 14:35:06  阅读:345  来源: 互联网

标签:git GitHub 笔记 Git 本地 硅谷 远程 分支


鹅鹅,有些图是直接粘尚硅谷笔记的...尚硅谷牛逼!

前言 内容介绍和目标

****

editPlus安装教程:https://blog.csdn.net/syz201558503103/article/details/102327356

第一章 Git概述

Git官网;https://git-scm.com/

Git指定版本安装(淘宝镜像):https://registry.npmmirror.com/binary.html?path=git-for-windows/(参考博客:https://blog.csdn.net/weixin_43872394/article/details/119892218)

****

Git 是一个免费和开源的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。

Git 易于学习,占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce 和 ClearCase,具有廉价的本地分支方便的暂存区域多个工作流等功能。

1.1 什么是版本控制

版本控制就是对程序、代码、文件的更新进行记录,跟踪其版本的迭代,方便以后再对程序等进行修改,如有需要还可以回退版本。

版本控制工具应该具备的功能

  • 协同修改
    多人并行不悖的修改服务器端的同一个文件。

  • 数据备份
    不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

  • 版本管理

    在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空
    间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文
    件系统快照的方式。

  • 权限控制
    对团队中参与开发的人员进行权限控制。
    对团队外开发者贡献的代码进行审核——Git 独有。

  • 历史记录
    查看修改人、修改时间、修改内容、日志信息。
    将本地文件恢复到某一个历史状态。

  • 分支管理
    允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率

1.2 版本控制工具

集中式版本控制工具:CVS、SVN(Subversion)、VSS

​ 集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存
所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件(每次拉取都要先等上一个人上传好最新的到服务器)或者提交更新。多年以来,这已成为版本控制系统的标准做法。

​ 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什
么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要
远比在各个客户端上维护本地数据库来得轻松容易
​ 事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕
机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。


分布式版本控制工具:Git、Mercurial、Bazaar、Darcs.....

​ 像Git这种分布式版本控制工具,每个客户端自己就能做版本控制,每个客户端都有个本地库,可以将代码进行本地库的版本跟踪,每个客户端在进行版本更新前,都要进行远程库的代码拉取(镜像复制),以确保自己是最新版本,客户端编写完毕后,将代码上传到远程库进行更新

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
1、 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
2、 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

黑色的线表示的是分布式版本控制工具的特点,表示每台客户机都独立进行版本控制,但真正让客户机之间协同开发的,还是需要远程库的配合:1、感觉上就是将集中式版本管理的服务器 => 远程库,2、再是每台客户机都有本地库做版本管理

1.3 Git简史

****

1.4 Git工作机制和代码托管中心

****

  1. 工作区指的是代码的文件目录

  2. 创建Git本地库(连带创建暂存区stage

  3. git add ,将工作区代码添加到stage

  4. git command,将代码提交到本地库

上面说的可删除是指,在三个区域中,如果代码出现问题,是否能删除bug代码

尚硅谷讲师说了个故事:如果你喝醉了,在工作区写了句骂老板的话,可以删除修改;工作区添加到缓存区,也能进行暂存区回退,再在工作区修改后就行;要是提交到本地库,除非把整个本地库都删了,否则不能删除,顶多也就在骂人的版本上更新覆盖,但仍可以通过版本回退找到骂人版本。如果本地库上传到远程库的话,远程库设置开源,那所有人都知道你在某个版本骂老板了

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库本地库的代码需要使用push命令推送到远程库
➢ 局域网
✓ GitLab (不开源,不放到网络上)
➢ 互联网
✓ GitHub(外网)
✓ Gitee 码云(国内网站)

1.5 Git的下载

Git指定版本安装(淘宝镜像):https://registry.npmmirror.com/binary.html?path=git-for-windows/(参考博客:https://blog.csdn.net/weixin_43872394/article/details/119892218)

下载好想要的版本后,解压后双击,除了指定存储目录,基本上选默认的就行了

下载完毕后,右击鼠标出现Git bash here,Git GUI here则下载成功

****

然后点击Git bash here,使用 git --version命令可以输出Git版本信息

还需要为Git的安装目录下的bin目录添加环境变量

第二章 Git常用命令

命令名称 作用
git config --global user.name 用户名 设置用户签名
git config --global user.email 邮箱 设置用户签名
git init 初始化本地库
git status 查看本地库状态
git add 文件名 添加到暂存区
git commit -m "日志信息" 文件名 提交到本地库
git reflog 查看历史记录
git reset --hard 版本号 版本穿梭

2.1 设置用户签名

鼠标右击Git bash here,输入下面两个语句

git config --global user.name yang
git config --global user.email learning@Git

则在C:/用户/当前用户名/.gitconfig文件中就会出现相关信息

****

说明:
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看
到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码。

※注意:这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任
何关系。

2.2 初始化本地库

选择一个空文件目录,创建本地库

git init

这里选择的是 D:\work\Git-test\git-demo

****

于是,在该位置就出现了.git 本地库

****


创建一个hello.txt,这里使用vim hello.txt命令,没有hello.txt存在就会新建一个

内容是hello atguigu! hello git!(重复个11行) ,然后可以使用 yy命令复制整行,使用p命令粘贴到下一行

****

然后我们再查看状态,hello.txt文件名是红色的,且提示存在未跟踪的文件hello.txt,可以使用 git add 跟踪

2.3 添加暂存区

git add hello.txt

添加了以后,查看状态,发现 hello.txt 文件名变绿了,而且还提示 可以使用git rm --cached 文件名进行暂存区删除

****

执行了git rm --cached 文件名,发现文件名又变成了红色,又变成了刚创建文件的状态(未被跟踪)

****

2.4 提交本地库

git commit -m "日志信息" 文件名

****

重新添加到暂存区,再提交到本地库后,有一个 ' 80d17ae ' 这代表这次提交的版本号,而 11 代表提交的hello.txt文件中有11行内容

然后再次查看状态,之前那个 no commits yet 消失了

2.5 查看历史记录

查看提交版本库日志就使用 git reflog

git reflog 

查看较详细的版本库日志就使用 git log

git log

****

使用git reflog ,我们可以看到版本号前七位,看到提交的是master分支

而使用 git log ,我们可以看到完整版版本号,看到master分支,还能看到提交人和提交时间

2.6 修改hello.txt

****

在修改后,提示可以用 git restore 文件名删除工作目录中的改变(根据暂存区复原工作文件)

在添加缓冲区后,提示可以用 git restore --staged 文件名复原暂存区之前的版本

提交到本地库后,发现指针已经指向新的版本号 ' 3484e81 '了


随后再更新一个版本,还是和上面一样的步骤

  1. 修改hello.txt,在第二行添加10个3
  2. 添加到暂存区 git add hello.txt
  3. 提交到 本地库 git commit -m "third commit" hello.txt
  4. 查看历史记录 git reflog

2.7 版本穿梭

就是从某个版本回到前面或后面的版本,使用的命令是

git reset --hard 版本号

现在的版本信息:

****

此时指针指向第三个版本号

现在我们想回到第二个版本,使用 git reset --hard 第二个版本号

****

上图我们可以看到 head指向master ,而master指向第二个版本号,且hello.txt的内容也恢复成了第二个版本的样子。除此之外,我们也可以查看 .git本地库文件内容来验证

****

查看HEAD文件内容,发现指针指向master分支。而想要知道master指向哪个版本号就要查看refs\heads\master文件,里面就是当前master指向的版本号

****


然后回到第一个版本号,又回到第三个版本号,查看历史版本就会是下面这样

****


Git是通过分支,分支再指向版本号来进行版本管理的

第三章 Git分支操作

3.1 什么是分支

****

​ 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独
分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时
候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是
一个单独的副本。(分支底层其实也是指针的引用)

3.2 分支的好处

****

​ 1、同时并行推进多个功能开发,提高开发效率。
​ 2、各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败
的分支删除重新开始即可。

3.3 分支的操作

命令名称 作用
git branch 分支名 创建分支
git branch -v 查看分支
git checkout 分支名 切换分支
git merge 分支名 把指定的分支合并到当前分支上

3.3.1 查看、创建、切换分支

****

也可以通过 查看 ./git本地库文件进行观察,指针指向hot-fix分支

****

3.3.2 修改hello.txt

修改hello.txt内容,将第一行的10个2变成5个2,将第二行的10个3变成5个3,然后git add ,git commit

3.3.3 合并分支

****

3.3.4 合并冲突

下面展示合并冲突:

1、首先对master分支下的hello.txt进行修改,具体是添加 master test 在倒数第二行的末尾,然后add ,commit

****

2、切换到hot-fix分支,在hot-fix分支下对hello.txt进行修改,具体是添加 hot-fix test 在倒数第一行的末尾,然后add ,commit

****

3、切换回master分支,进行分支合并 git merge hot-fix。然后出现了分支冲突的提示

****

冲突产生的表现:后面状态为 MERGING

冲突产生的原因
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替
我们决定使用哪一个。必须人为决定新代码内容。


解决合并冲突:我们需要人为的去修改hello..txt

1、此时查看master分支下的hello.txt

****

2、编辑有冲突的文件,删除特殊符号,决定要使用的内容(vim中dd为删除整行,u是撤销(复原上一个动作),yy复制整合,p粘贴在下一行);而且,在该合并分支问题未解决前,不准切换分支!

****

3、add 、commit,分支合并问题就解决了。

​ 执行提交(注意:此时使用 git commit 命令时不能带文件名

****

这时候,后面的 MERGING消失,恢复正常


master、hot-fix 其实都是指向具体版本记录的指针。当前所在的分支,其实是由 HEAD
决定的。所以创建分支的本质就是多创建一个指针。
HEAD 如果指向 master,那么我们现在就在 master 分支上。
HEAD 如果指向 hotfix,那么我们现在就在 hotfix 分支上。

所以切换分支的本质就是移动 HEAD 指针。

第四章 Git团队协作机制

4.1 团队内协作

****

4.2 跨团队协作

简单说,就是岳不群小组(岳不群,令狐冲)想要东方不败小组(东方不败)的僻邪剑谱,想要人东方不败小组帮忙,于是东方不败就拿华山剑法过来修改,修改完上传到东方不败小组的远程库,然后交给岳不群小组

第五章 GitHub和远程仓库操作

命令名称 作用
git remote -v 查看当前所有远程地址别名
git remote add 别名 远程地址 起别名
git push 别名 分支 推送本地分支上的内容到远程仓库
git clone 远程地址 将远程仓库的内容克隆到本地
git pull 远程库地址别名 远程分支名 将远程仓库对于分支最新内容拉下来后与
当前本地分支直接合并

5.1 创建远程库&创建别名

注册一个github账号,然后新建一个仓库(即远程库)

创建了仓库后,我们可以得到Https\SSH协议的仓库地址,后续就是使用git命令上传到该地址对应的仓库

由于远程库地址太长不好记,我们就可以给它们起别名

****

5.2 推送本地库到远程库

git push 别名 分支 #如果没有别名,直接写远程地址也行

****

我们执行 git push git-demo master命令后,界面上弹出了连接GitHub的界面,提示我们要先登录GitHub,有两种方式:1、浏览器登录 2、Token登录

这里我们选择浏览器登录

点击 Sign in with your browser后,就会在浏览器进入到下面这个界面

****

这是要我们授权 Git凭证管理器,点击授权之后,就会提示输入GitHub的密码,然后验证密码通过后,就授权成功了

****

****

这时,我们可以看到 git push git-demo master的结果

****

接着,我们可以来到GitHub仓库,就会发现提交的hello.txt

5.3 拉取远程库到本地库

有这样一种情况:小李在出差时,公司的代码出了一点问题,小李直接手机登录GitHub,直接在远程仓库上进行修改;小李出差回来,发现本地库与远程库不一致,这时候就需要拉取远程库代码到本地库

git pull 远程库地址别名 远程分支名

1、我们先在远程仓库上对hello.txt文件进行修改,就是在文件末尾新增一行 20个1

2、拉取远程库到本地库

****

3、查看状态 ,查看本地的hello.txt

按道理,状态应该是 工作树干净,但我的是未跟踪,不过hello.txt的内容拉取成功了!

关于这个 .swp文件,有关是否正常关闭vim/vi编辑器,参考博客:https://blog.csdn.net/haijiege/article/details/85230327

****

5.4 克隆远程库到本地

克隆代码是不需要登录账号的,只要远程仓库的权限是public

1、我们创建一个新的空文件夹Git-clone,在这个文件夹里边右击 git bash here

2、直接使用命令 git clone 远程仓库地址

****

3、执行完后,我们发现,Git-clone文件夹里出现了 git-demo文件夹(git-demo与远程仓库名git-demo一致),而git-demo文件夹里面就是.git本地库和 hello.txt文件

4、几乎都和远程仓库的一样,不过查看远程仓库地址别名的时候,发现别名默认变成了 origin

****


小结:clone 会做如下操作。1、拉取代码。2、初始化本地仓库。3、创建别名

5.5 团队内协作

由于团队内协作至少需要2个GitHub号,所以就不演示了,图用尚硅谷笔记的,这里记录下过程


1、克隆到本地之后,我们对新克隆的文件夹Git-clone/git-demo/hello.txt文件进行修改

再其末尾添加一行 20个2 by lhc(令狐冲)

而原先的Git-test/git-demo是作为岳不群掌门目录

2、对hello.txt进行add,commit操作

3、执行git push 远程地址或别名 分支。这时就会弹出Connect to GitHub界面,而此时就要将原本岳不群的GitHub号换成令狐冲的GitHub号

4、切换GitHub号

​ 1)先查看电脑的 控制面板—>用户账户—>凭证管理器

​ 2)找到原先的凭证管理器(原先的岳不群),然后删掉它

****

​ 3)我们使用的是浏览器登录,所以需要在浏览器中登录GitHub网址,使用令狐冲的账户登录

5、然后再进行 git push 远程地址或别名 分支 操作,而此时会失败,原因:虽然我们知道令狐冲是 岳不群的弟子 ,但GitHub不知道(不知道令狐冲和岳不群是一个团队的)。所以岳不群要邀请令狐冲一起构建仓库

​ 1)岳不群登录自己的GitHub号,邀请 令狐冲 一起开发同一个仓库

****

​ 2)填入想要合作的人

****

​ 3)Pending invite(待处理邀请,是一个邀请链接),我们可以复制邀请链接发给令狐冲(被邀请人)

****

​ 4)被邀请人收到消息后,将邀请链接复制在浏览器地址栏上,就能接收或婉拒邀请

****

​ 5)接受邀请后,atguigulinghuchong账号上就能看到岳不群的创建的 git-shTest 仓库了

****

6、令狐冲就可以修改hello.txt内容并 push 到远程仓库,也就是 git push 远程地址 分支。

​ 这里有个小疑惑,令狐冲push的远程地址是岳不群的仓库地址,还是令狐冲账号上看到的仓库的地址(或者说这个地址和岳不群的仓库地址是一致的?)

​ 嗯嗯...应该是岳不群,毕竟仓库是岳不群创建的

7、回到 atguiguyueyue 的 GitHub 远程仓库中可以看到,最后一次是 lhc 提交的。

5.6 跨团队协作

和第四章 4.2 跨团队协作 描述的一模一样

在这一小节,就会根据4.2做具体的操作

1、GitHub内可以搜索其他人的仓库,东方不败账号就能搜索岳不群的仓库,或者岳不群直接把自己的仓库地址(分Https/SSH)发给东方不败,东方不败复制在浏览器地址栏就查到了

2、查到后,东方不败就需要将这个仓库在fork一份到自己的仓库,相当于复制一个副本仓库到自己账号。

​ 下面随便搜索了一个crm项目仓库

3、确认创建分支后,可以在东方不败账号上,找到fork的 crm仓库

****

​ 点进去,还能发现 这个仓库是 东方不败 fork别人的仓库得来的

****

4、东方不败就可以 从GitHub上clone 这个远程仓库到本地库,然后进行代码更新,更新之后再 进行 add commit push等等。

​ 当然,也可以直接在GitHub上修改(技术够强)

5、东方不败将辟邪剑谱写好,要发送给岳不群:在东方不败远程仓库进行 pull request,就是请求 仓库原作者岳不群 拉取 东方不败更新的代码

点击 new pull request 后

​ 点击 create pull request ,还有一个界面,填写 拉取请求 标题、描述等

6、东方不败 pull request之后,岳不群仓库pull request 处就有信息提示:东方不败做了 pull request 操作;岳不群就能点进去看,看东方不败的辟邪剑谱 写的怎么样,觉得不错,就 merge pull request 合并到岳不群的远程仓库

​ 此外,岳不群还能在pull request 处发消息给东方不败,问问代码为什么这样写,东方不败收到消息后也能回复(GitHub提供的聊天室功能)

7、当合并完代码后,令狐冲也能对合并后的代码进行访问

5.7 SSH免密登录

之前就说过,仓库的地址有两种,一种是Https,还有一种是SSH,而SSH需要我们在GitHub上创建SSH密钥后才能用,而且创建后不再需要反复输入账户密码

# -t 指定加密算法 -C 描述:表示针对 某个账号,这里是岳不群账号
ssh-keygen -t rsa -C atguiguyueyue@aliyun.com  

1、我们输入这个命令,然后回车,然后需要再按3次回车才可以生成 .ssh密钥目录

****

2、然后 C:/用户/当前用户名 下就会有 .ssh目录出现

里面是 id_rsa(私钥),id_rsa_pub(公钥)

****

3、然后,我们就能使用 id_rsa.pub的内容在GitHub中创建我们的 SSH密钥

图1

图2

图3

4、测试

在 powerfulGuy/git-demo仓库下的hello.txt文件末尾添加一行 "ssh test!"内容

然后使用 git pull ssh地址 master 进行拉取

****

然后查看 hello.txt,发现 成功拉取了 ssh test!这句话


再进行推送,就像之前一样的步骤

  1. vim hello.tex ,在最后一行加上 8个2

  2. git add hello.txt

  3. git commit -m "ssh commit test" hello.txt

  4. git push git@github.com:powerfulGuy/git-demo.git master

    然后这次推送,就没有之前弹出 Connect to GitHub界面,让我们再登录GitHub了

  5. 查看GitHub远程仓库,发现hello.txt成功push!

第六章 IDEA集成Git

6.1 配置Git忽略文件

问题 1:为什么要忽略他们?
答:与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之
间的差异。

问题 2:怎么忽略?
1)创建忽略规则文件xxxx.ignore(前缀名随便起,建议是 git.ignore)
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用
户家目录下(家目录指的是 C/Users/当前用户名/)

git.ignore 文件模版内容如下:

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

#.gitconfig 
[user]
	name = yang
	email = learning@Git
[core]
	excludesfile = C:/Users/27433/git.ignore
    注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”

6.2 IDEA设置Git

1、先创建一个maven工程 git-test

2、File —>settings—>Version Control —>Git

****

6.3 初始化本地库

我们想要git接管我们这个项目,就需要在git-test目录下生成.git仓库

而我们不使用 git bash here+ git init 创建,我们要在IDEA初始化本地库,我们只需要如下图 创建 Git仓库就行了

该操作就等同在文件夹内 git init

默认就是当前的项目文件夹git-test

当我们点击 OK之后,就会看到 pom.xml文件变成红色,未跟踪状态

6.4 添加&提交

添加到暂存区

  1. 单个添加

    选择要添加的文件,右击选择Git—>add

  2. 整个文件夹多个添加

    选择要添加的文件夹,右击选择Git—>add

    例如,我们就能选择项目根目录git-test,右击选择Git—>add,而这时如果提示git-test文件夹包含要忽略的文件,您是否要添加,选择cancel取消就行

  3. 添加暂存区后,代码颜色由红变绿

提交到本地库

  1. 同添加到暂存区

    • 单个提交

      右击,选择Git—>Commit File

    • 整个项目提交

      右击,选择Git—>Commit Directory

  2. 提交本地库后,代码颜色由绿变成正常黑色

  3. 在IDEA中,被添加过一次暂存区后的文件,以后进行修改后可以直接提交本地库!

6.5 切换版本

  1. 我们对已添加暂存区文件进行修改,修改后代码颜色 由正常黑色变成蓝色

    蓝色就代表 被追踪过 又进行 修改 了的文件

  2. 再添加暂存区、提交本地库后恢复正常黑色

  3. 这时再进行修改,可以跳过添加暂存区,直接提交本地库

  4. 查看历史记录,查看提交信息

  5. 切换版本:选择某个提交版本,右击选择Checkout Revision 版本号即可

    切换了之后,代码也会随之变化

  6. 切换回最新版本,可以右击选择 Checkout master

6.6 创建、切换分支

1 创建分支

  1. 右击项目根目录,Git—>Repository—>Branches(不推荐)

    点击就会出现一个Git Branches的小框框

    点击就会出现一个Create New Branch的小框框

  2. 直接点击右下角的分支名(推荐)

    点击以后就有Git Branches的小框框

    ......与前面类似

2 切换分支

从右下角就能查看分支名,点击分支名后就能看到当前有哪些分支,选择要切换的分支再选择Checkout即可

6.7 合并分支

1 没有合并冲突

在 IDEA 窗口的右下角,将 hot-fix 分支合并到当前 master 分支。

****

如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动
提交本地库。

2 有合并冲突

1、如图所示,如果 master 分支和 hot-fix 分支都修改了代码,在合并分支的时候就会发生
冲突。

****

****

2、我们现在站在 master 分支上合并 hot-fix 分支,就会发生代码冲突。

****

3、点击 Conflicts 框里的 Merge 按钮,进行手动合并代码。

4、手动合并完代码以后,点击右下角的 Apply 按钮。

5、代码冲突解决,自动提交本地库。

第七章 IDEA集成GitHub

7.1 设置 GitHub 账号

IDEA操作:File—>Settings—>Version Control—>gitHub

使用用户名密码登录会报404错误,所以要使用Token进行登录

而Token需要去GitHub网址上弄

  1. 点击账号头像
  2. 选择Settings并点击
  3. 选择Developer settings并点击
  4. 选择Personal access tokens
  5. 点击Generate new token
  6. 生成token后,复制token值回到IDEA的github登录那里进行登录

7.2 分享工程到 GitHub

  1. VCS——>import into Version Control——>share Project on GitHub

  2. 出现Share Project On Github窗口,填写信息

    1. Repository name:新建远程仓库名(默认是项目名)

    2. Remote:远程库别名,默认是origin

    3. Description:仓库的描述

    4. share by :账号用户,使用token登录IDEA的github没这个选项

  3. 点击 Share

  4. 当IDEA右下角出现 下面信息则说明分享成功

    Successfully shared project on GitHub

    git-test(远程仓库名)

  5. 该操作会在GitHub上做下面两件事

    1. 新建仓库,仓库名是上面设置的Repository name
    2. push推送整个项目到新仓库

7.3 push 推送本地库到远程库

  1. 右击项目根目录——>Git——>Repository——>Push

  2. 出现Push Commits窗口,窗口的主要内容有

​ 注意:push 是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push 的操作是会被拒绝的。也就是说,要想 push 成功,一定要保证本地库的版本要比远程库的版本高!因此一个成熟的程序员在动手改本地代码之前,一定会先检查下远程库跟本地代码的区别!如果本地的代码版本已经落后,切记要先 pull 拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改,提交,推送!

7.4 pull 拉取远程库到本地库

  1. 右击项目根目录——>Git——>Repository——>Pull

  2. 出现Pull Changes 窗口

    ****

注意:pull 是拉取远端仓库代码到本地,如果远程库代码和本地库代码不一致,会自动
合并,如果自动合并失败,还会涉及到手动解决冲突的问题。

7.5 clone 克隆远程库到本地

  1. VCS——>Git——>Clone

  2. 弹出界面,填写信息

    ****

第八章 IDEA集成Gitee

Gitee所要做的操作几乎与GitHub一致,有如下不同:

  1. Gitee是国产的,GitHub是外国的
  2. Gitee访问速度快,GitHub慢
  3. 界面不同

实在要做,就把之前GitHub上做的都做一遍。


8.1 码云复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。
具体操作如下:

如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新!

标签:git,GitHub,笔记,Git,本地,硅谷,远程,分支
来源: https://www.cnblogs.com/powerfulTime/p/16460809.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有