GIT和GitHub

1项目管理工具

  • 编写文档: word ppt excel markdown
  • 项目流程图 : xmind visio
  • 项目管理 : project
  • 代码管理 : svn git

2. GIT和GitHub

  • GIT的特点

    • git是开源的,多在*nix下使用,可以管理各种文件

    • git是分布式的项目管理工具(SVN是集中式的)
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0uZyLsFr-1680698544425)(./img/分布.jpg)]

Linux下GIT安装
sudo apt  install  git

2.2 GIT使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RhCDvu7I-1680698544425)(./img/git.jpeg)]

  • 上面图片从右到左依次为:
    • 工作区:项目所在操作目录,实际操作项目的区域
    • 暂存区: 用于记录工作区的工作(修改)内容
    • 仓库区: 用于备份工作区的内容
    • 远程仓库: 远程主机上的GIT仓库

注意: 在本地仓库中,git总是希望工作区的内容与仓库区保持一致,而且只有仓库区的内容才能和其他远程仓库交互。

2.2.1 初始配置
  • 配置命令: (一劳永逸,只需要刚开始配置就好了)
  1. 配置用户名
将用户名设置为zhangbao(zhangbao是可设置的)
sudo git config --global user.name zhangbao
  1. 配置用户邮箱
将邮箱设置为zhangbaojack@163.com
git config --global user.email zhangbaojack@163.com
  1. 查看配置信息
git config --list

2.2.2 基本命令

初始化仓库,可以理解把文件夹变成 工作区
git init 
意义:将某个项目目录变为git操作目录,生成git本地仓库。即该项目目录可以使用git管理
用ls -a 查看隐藏文件,可以看到有个.git的文件夹,如果不想使用git管理了,就把这个文件夹删了就ok
  • 查看本地仓库状态
git status
说明: 初始化仓库后默认工作在master分支,当工作区与仓库区不一致时会有提示。
将工作内容记录到 暂存区
1,git add 文件名

2,也可以多个文件一起提交,文件之间空格隔开
git add 文件1 文件2 文件3

3,将当前目录的所有文件都记录到暂存区,(add空格后面是个点,我理解和4是一样的效果)
git add .

4,将所有文件(不包含隐藏文件)记录到暂存区
git add *
  • 取消文件暂存
git rm --cached 文件名
将文件同步到本地仓库
git commit 文件名 -m '备注说明'
说明: -m表示添加一些同步信息,表达同步内容

不加文件名表示同步所有暂存记录的文件
将暂存区所有记录同步到仓库区
git commit -m '备注说明'
设置忽略文件(不受git管理)

在GIT项目中可以在项目根目录添加**.gitignore**文件的方式,规定相应的忽略规则,用来管理当前项目中的文件的忽略行为。.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则。在.gitignore 文件中,遵循相应的语法,在每一行指定一个忽略规则。

上面一堆解释其实很简单,就是,就是创建个.gitignore文件。(别忘记了前面有个点)
然后把文件名n写在.gitignore文件里,件名n就可以不受git管理了。超出三界之外

.gitignore忽略规则简单说明
	
file            表示忽略file文件
*.a             表示忽略所有 .a 结尾的文件
!lib.a          表示但lib.a除外
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;
  • 查看commit 日志记录

    git log
    他是自上而下显示日志的
    
将暂存区或者某个commit点文件恢复到工作区
git checkout [commit] -- 文件名

git checkout -- 文件名
将a.jpg文件恢复,不写commit表示恢复最新保存的文件(一般用这个)
git checkout -- a.jpg
移动或者删除文件(这两个操作会修改工作区内容,同时将操作记录提交到暂存区)
git  mv  [file] [path]
git  rm  [files]
注意: 这两个操作会修改工作区内容,同时将操作记录提交到暂存区。

2.3 版本控制

退回到commit之前的节点
1,退回到上一个commit节点
git reset --hard HEAD^
说明: 一个^表示回退1个版本,依次类推。当版本回退之后工作区会自动和当前commit版本保持一致

2,退回到指定的commit_id节点
git reset --hard [commit_id]
commitid 取前七位就可了。
commitid可以通过,git reflog 或者 git log查看 
  • 查看所有操作记录
    git reflog
    注意:最上面的为最新记录,可以利用commit_id去往任何操作位置
    
创建标签(版本)
  • 标签: 在项目的重要commit位置添加快照,保存当时的工作状态,一般用于版本的迭代。
1,创建标签(版本)
git tag 自己起的标签版本名 [commit_id] -m '备注说明这是版本n'
说明: commit_id可以不写则默认标签表示最新的(上一次)commit_id,备注说明也可以不写,但是最好添加。

在最新的(上一次)commit处添加标签v1.0
git tag v1.0 -m '备注说明这是版本1'
查看标签
1,查看全部标签列表
git tag
2,查看标签详细信息
git show 标签版本名
去往某个标签(版本)节点
git reset --hard 标签版本名
删除标签
git tag -d 标签版本名

2.4 分支管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MWObgACj-1680698544425)(./img/fz.jpg)]

2.4.2 基本操作
查看现有分支
git branch
说明: 前面带 * 的分支表示当前工作分支
创建分支
git branch 分支名字
说明: 基于a分支创建b分支,此时b分支会拥有a分支全部内容。在创建b分支时最好保持a分支"干净"状态。
切换工作分支
1,切换分支
git checkout 分支名字

2,创建分支并切换到这个分支
git checkout -b 分支名字
合并分支
git merge 被合并的子分子名字
注意:分支的合并一般都是  在父分支上 去把子分支合并来
  • 删除分支
git branch -d 分支名字  删除已经合并过的分支
git branch -D 分支名字  删除没有被合并的分支(强行删除)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ecx6dK9c-1680698544425)(./img/merge.png)]

2.4.3 分支冲突问题

冲突情形1—— 合并时:原来的分支增加了新文件或者原有文件发生了变化

此时合并可能会出现:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NKwN7i83-1680698544426)(./img/merge1.png)]
此时只要先摁 ctrl+o 写入,然后回车,再摁ctrl+x 离开就可以了。

也可能出现提示让直行commit合并,那么此时只需要直行commit操作就可以了。这种冲突比较好解决。

冲突情形2—— 子分支和父分支修改了相同的文件

此时会出现:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AZNQuaIi-1680698544426)(./img/merge2.png)]
解决办法:这个时候,冲突的文件会有子分支和父分支 双方修改的全部内容,需要自己手动进入文件进行修改后,再直行add ,git commit -m '备注说明’操作提交
我:注意了,commit不能带文件名,直接git commit -m ‘备注说明’

下面这个就是冲突的文件
在这里插入图片描述

  • 总结

    • 尽量在项目中降低耦合度,不同的分支只编写自己的模块。
    • 如果必须修改原来父级分支的文件内容,那么做好分工,不要让多个分支都修改同一个文件。

2.5 GitHub使用

GitHub网址:github.com

2.5.1 获取项目&&创建项目(内容比较多,建议看看如何从零到一)

  • 在左上角搜索栏搜索想要的获取的项目
    在这里插入图片描述

  • 选择项目后复制项目git地址
    在这里插入图片描述

在本地使用git clone方法即可获取

git clone https://github.com/xxxxxxxxx
拉去到这个项目到本地

注意:

  1. 获取到本地的项目会自动和GitHub远程仓库建立连接。且获取的项目本身也是个git项目。
  2. GitHub提供两种地址链接方式,http方式和SSH方式。通常访问自己的项目可以使用SSH方式,clone别人的项目使用http方式。

2.5.2 创建自己的项目仓库

  • 添加SSH密钥

    # 先建立秘钥信任
    1. 将自己要连接github的计算机的ssh公钥内容复制
    2. github上选择头像下拉菜单,settings-》SSH and GPG keys-》new SSH key
    

    A. 找到自己的公钥位置:
    在这里插入图片描述

如果A操作没有找到,说明没有生成过公钥
ssh -keygen
执行这个命令生成公钥再看(执行就用输入个y,其他回车就行。自己注点意看)
(好像是重新生成公钥,能把之前的覆盖了??我也不确定)

B:登陆github,选择右上角头像下拉菜单,点击settings。

title随便写。key把公钥复制上去
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N0aHKBhf-1680698544427)(./img/9.png)]
################################################################################# 在这里插入图片描述
C:点击右上角加号下拉菜单,选择新的仓库
在这里插入图片描述

D:填写相应的项目信息即可
在这里插入图片描述

E1, 第一种情况,创建一个非空厂库。可选项勾选上。只要勾选一个,创建的就是非空厂库

创建一个非空厂库勾选一个两个三个都可以
在这里插入图片描述
成功创建非空厂库

在这里插入图片描述
复制ssh地址,(如果添加公钥成功了就选择ssh,否则选择http)
在这里插入图片描述
来到终端把项目克隆下来,因为加了公钥,所以不用输入密码
在这里插入图片描述
在这里插入图片描述

1,查看连接的远程仓库名称
git remote

2,断开远程仓库连接
git remote rm [origin]
[origin]是仓库名称

远程仓库操作命令

1,将本地分支推送给远程仓库
# 将master分支推送给origin主机远程仓库,第一次推送分支使用-u表示与远程对应分支	建立自动关联
git push -u origin  master
git push origin  [:branch]  # 删除向远程仓库推送的分支

2,推送代码到远程仓库
# 如果本地的代码有修改项推送给远程仓库
git push

3,推送旧的版本
# 用于本地版本比远程版本旧时强行推送本地版本
git push --force origin  

4,从远程获取代码
git pull

#############################################################################

E:第二种情况,创建一个空仓库

在这里插入图片描述
(如果添加公钥成功了就选择ssh,否则选择http)
在这里插入图片描述

git remote add origin git@github.com:zhangbaojack/zhangbaojack2023A.git
git remote远程库,add添加为origin的仓库名字(一般默认用官方给的),后面就是ssh地址
执行了这一步,origin就是远程仓库的名字了

git branch -M main
这个意思是将主分支重新命名为main,如果不想命名可以不写

git push -u origin main
如果没有命名,就写git push -u origin master


注意注意注意,第三步详细解释
git push -u 仓库名 分支
这是第一次上传时需要执行的,下次就直接用git push就可以了

三步,复制到终端,别分执行
在这里插入图片描述

如果是自己的仓库需要删除
  • 如果是自己的仓库需要删除,则选择自己的仓库选择settings,在最后可以选择删除仓库。

    在这里插入图片描述
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aYmxDCTN-1680698544427)(./img/5.jpg)]

2.5.3 远程仓库操作命令
  • 在本地使用ssh连接仓库

    # 后续操作每次上传内容都需要输入密码,比较麻烦,一般用于临时计算机的连接使用
    git remote  add origin git@github.com:/tarena/aid.git
    
    注意:
    如果连接远程时 git remote add origin 后用https地址,那么以后每次上传内容都需要输入用户名密码
    
  • 查看连接的远程仓库名称

    git remote
    
  • 断开远程仓库连接

    git remote rm [origin]
    
  • 将本地分支推送给远程仓库

    # 将master分支推送给origin主机远程仓库,第一次推送分支使用-u表示与远程对应分支	建立自动关联
    git push -u origin  master
    
    git push origin  [:branch]  # 删除向远程仓库推送的分支
    
  • 推送代码到远程仓库

    # 如果本地的代码有修改项推送给远程仓库
    git push
    
  • 推送旧的版本

    # 用于本地版本比远程版本旧时强行推送本地版本
    git push --force origin  
    
  • 从远程获取代码

    git pull
    

在pycharm中也能用

推到暂存区1:刚创建文件的时候会提示,直接点add就可以

在这里插入图片描述

推到暂存区2,右键

在这里插入图片描述

从暂存区提交到本地库1,右键

在这里插入图片描述

从暂存区提交到本地库2

在这里插入图片描述
在这里插入图片描述

退回到commit之前的节点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 综合项目案例

3.1 在线词典

  • 功能说明

用户可以登录和注册

* 登录凭借用户名和密码登录
* 注册要求用户必须填写用户名,密码,其他内容自定
* 用户名要求不能重复
* 要求用户信息能够长期保存

可以通过基本的图形界面print以提示客户端输入。

* 程序分为服务端和客户端两部分
* 客户端通过print打印简单界面输入命令发起请求
* 服务端主要负责逻辑数据处理
* 启动服务端后应该能满足多个客户端同时操作

客户端启动后即进入一级界面,包含如下功能:登录 注册 退出

* 退出后即退出该软件
* 登录成功即进入二级界面,失败回到一级界面
* 注册成功可以回到一级界面继续登录,也可以直接用注册用户进入二级界面

用户登录后进入二级界面,功能如下:查单词 历史记录 注销

* 选择注销则回到一级界面
* 查单词:循环输入单词,得到单词解释,输入特殊符号退出单词查询状态
* 历史记录:查询当前用户的查词记录,要求记录包含name   word   time。前10条即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值