git&github

本文详细介绍了Git的基本概念和工作原理,包括仓库、星标、分支、合并请求等。讲解了如何在GitHub上创建、克隆和管理仓库,以及Git的常用命令如初始化、添加、提交和拉取。此外,还涵盖了Git的本地与远程分支操作,解决冲突以及码云的免密登录设置。最后,通过实例展示了在IDEA中集成Git进行多分支管理的方法。

基本概念

  1. Repository 仓库

  2. Star 收藏项目

  3. Fork 复制仓库,独立存在

  4. Pull Request:发起请求 fork的仓库,修改之后,pull request给原来的账号的仓库,如果有感觉不错可以合并到原仓库中

  5. Watch 关注 关注后的仓库,当仓库发生改变时,可以在主页上看到

  6. Issue 事务卡片 可用来讨论代码bug

  1. GitHub主页

    左侧显示动态,右侧自己的信息

  2. 仓库主页

    项目代码,版本,收藏关注fork

  3. 个人主页

创建项目/仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yAuMPwKr-1611297269597)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201104210540508.png)]

Git

版本控制

版本迭代

多人开发必须使用版本控制工具

  • Git
  • SVN
  1. 本地版本控制

  2. 集中版本控制

所有的数据都存在服务器上,用户如果不联网的话,就看不到历史版本

例如:SVN

  1. 分布式版本控制

Git 最先进的版本控制工具,有linux之父 李纳斯托维斯(芬兰人)仅耗费两周的时间开发

每个人都拥有全部的代码,没有中央服务器

不会因为服务器损毁或者网络问题,造成无法工作的情况

安装

  1. 通过镜像地址下载

    http://npm.taobao.org/mirrors/git-for-windows/
    
  2. 先卸载

    #1.清理环境变量
    #2.
    Git Bash:与linux风格类似的命令行
    Git CMD:windows风格的命令行
    Git GUI :图形化界面
    

基本linux的命令

在对应的文件夹里直接右键可以打开GIt bash

pwd
ls (ll)
clear
touch 新建文件
rm 删除文件
mkdir
rm -r 递归删除
mv 
reset
history 历史命令
exit
  1. git配置

    #
    git config -l
    #系统配置 与git/etc/gitconfig 文件下内容一致
    git config --system --list
    #查看当前用户的配置 与C:\Users\hello文件下内容一致
    git config --global --list
    #手动配置用户名
    git config --global user.name "cwb"
    #配置邮箱
    git config --global user.email 1518574228@qq.com 
    

Git工作原理

环境变量是为了任何地方使用而已,因为可以右键使用,配不配都可以

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jujL4yz3-1611297269613)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201104224201840.png)]

搭建仓库

本地仓库搭建

# init 产生.git文件 在当前目录新建一个git代码库
git init

克隆远程仓库

# 克隆远程仓库(GitHub或者gitee)url为远程仓库地址
git clone url

文件操作

文件的四种状态

  • Untracked 未跟踪 通过git add状态会变为staged
  • Unmodify 文件已经入库未修改。如果被修改则变为Modified,如果被git rm移出版本库,则变为Untracked
  • Modified 文件仅仅被修改,没有其他操作,此文件两个去处,一是git add 可进入暂存状态(Staged);或者git checkout丢弃修改返回UNmodify状态
  • Staged 暂存状态 执行git commit则可以同步到库中,这是库中的文件和本地文件变为一致,文件为UNmodified状态,执行git reset head filename取消暂存,文件状态为modified
#创建本地库
git init
#查看文件状态
git status
#添加所有文件到暂存区
git add .
#再次查看文件状态
git status
#将暂存区的文件进行提交
git commit  -m "消息内容"
#
git status

忽略文件

在主目录下建立“.gitignore”文件

#为注释
*.txt      #忽略所有.txt结尾的文件
!lib.txt   # 但lib.txt文件例外
/temp      #忽略根目录下的temp,其他地方的不忽略
build/     #忽略build/目录下的所有文件
doc/*.txt  #会忽略诸如 doc/b.txt 但不会忽略 doc/cwb/a.txt

码云免密登录

#生成公钥 rsa为加密算法 会产生一个.ssh的文件
ssh-keygen -t rsa
#将公钥信息添加到码云中
将.ssh下的id_rsa.pub文件内容粘贴到码云的公钥处
#使用码云创建自己的仓库
在gitee创建仓库

idea集成Git

# 在gitee上新建仓库
# clone远程仓库到本地
git clone https://gitee.com/hellocwb/blog.git
#然后将下载的文件剪贴到项目中,此时项目与远程仓库建立联系,出现下图中,文件变红,多了git工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oeliKf5O-1611297269615)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201105155954281.png)]

红色的文件表示选中状态

上传过程

#1. 加入到暂存区
git add .
#2.在菜单栏,选中,commit或者
git commit -m "第一次提交"
#3.push到远程仓库
git push

git分支命令

#列出所有的本地分支
git branch
#列出所有的远程分支
git branch -r
#新建一个分支,但是仍停留在本分支
git branch [branch-name]
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch-name]
#合并指定分支到当前分支
git merge [branch-name]
#删除本地分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]

注意:

  • 新建的本地分支会自动同步到main分支中,并在提交中一同提交到远程仓库

  • 新建的仓库,并且没有和远程仓库建立联系,如果和远程仓库建立联系,并成为其一个分支需要使用命令

    git push --set-upstream origin blogwin[本地分支名]
    
  • 本地新建的文件,不管在哪个分支的状态下,只要是一个文件夹下,任何分支提交只要检测到文件夹变化,就会提交给自己的远程分支,不管此文件是哪个分支的工作状态下创建的,并且提交后只有自己对应的远程分支才有此文件。

#当本地与远程仓库不一致时,push时提示要先pull
git pull

使用git上的项目并在多个tag或分支之间切换

此项目为springboot项目

  1. 创建springboot项目,项目名最好与远程仓库保持一致
  2. 在项目的文件夹下 git clone 远程仓库的项目
  3. 将下载git文件替换原来的项目文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8nXpJZrF-1611297269618)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201204232153496.png)]

  1. 使用git checkout -b web-2 web-2 创建一个本地分支 【后一个web-2代表远程仓库上的tag】
  2. idea的项目代码已经变为web-2
  3. 想要切换到web-1项目通过git命令切换分支即可

当然也可以在分支之间切换

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-da48Cqgm-1611297269620)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201204234512484.png)]

使用命令

git checkout -b 本地分支名 origin/远程分支名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdMJ2z5B-1611297269622)(C:\Users\hello\AppData\Roaming\Typora\typora-user-images\image-20201204234624989.png)]

此时idea已经是master分支下的文件

### GitGitHub的关系及使用方法 Git 是一种分布式版本控制系统,而 GitHub 是一个基于 Git 的代码托管平台和开发者社区。两者相辅相成,Git 提供了本地代码管理的强大功能,而 GitHub 则为开发者提供了远程协作环境、项目管理和工具集成的支持[^4]。 在实际开发中,Git 用于在本地对代码进行版本控制,包括创建分支、提交更改等操作。而 GitHub 则作为远程仓库,允许开发者将本地的更改推送到远程服务器,或者从远程服务器拉取其他人的更改。这种远程同步机制使得团队协作变得更加高效[^4]。 以下是一个简单的流程,展示如何使用 GitGitHub 进行协作开发: #### 1. 配置 GitHub 账号和远程库 首先需要有一个 GitHub 账号,并创建一个远程仓库。登录 GitHub 后,点击右上角的『+』号,选择『new repository』来创建一个新的远程库[^1]。 #### 2. 将本地仓库与远程仓库关联 假设已经在本地初始化了一个 Git 仓库,可以通过以下命令将本地仓库与远程仓库关联: ```bash git remote add origin https://github.com/username/repository.git ``` #### 3. 创建分支并提交更改 在开发新功能时,通常会创建一个新的分支以避免影响主分支(`main` 或 `master`)。例如,创建一个名为 `feature/login` 的分支并提交更改: ```bash git checkout -b feature/login git add . git commit -m "Add login feature" ``` 然后将该分支的更改推送到远程仓库: ```bash git push origin feature/login ``` 上述命令会将本地的 `feature/login` 分支推送到远程仓库,并起个别名 `origin`[^2]。 #### 4. 配置代理(可选) 如果网络环境需要通过代理访问 GitHub,可以配置 Git 使用系统代理。例如,设置 HTTP 和 HTTPS 的代理端口: ```bash git config --global http.proxy http://127.0.0.1:1234 git config --global https.proxy http://127.0.0.1:1234 ``` 这一步对于某些特定网络环境可能非常重要[^3]。 #### 5. 拉取请求(Pull Request) 当功能开发完成后,可以通过 GitHub 网站发起一个拉取请求(Pull Request),邀请团队成员审查代码并合并到主分支GitHub 提供了详细的审查工具和讨论功能,方便团队协作[^4]。 ### 总结 GitGitHub 的结合为开发者提供了一套完整的解决方案,涵盖了代码管理、版本控制、团队协作和自动化工具集成等功能。通过合理使用 Git 命令和 GitHub 平台,可以显著提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值