Git关联Github和码云并利用IDEA内置工具

Git教程

Git与Svn对比

Svn是集中式版本控制系统,必须联网才能工作。在一定成程度上可以看到其他开发人员在干什么,管理员也可以很轻松的掌握每个人的开发权限。

缺点:服务器单点故障;容错性差

Git是分布式版本控制系统,每人的电脑上有一个完整的本地仓库,多人协作时只需要把各自的修改推送给对方

初次使用配置

安装git sudo apt-get install git

配置用户名和邮箱 git config --global user.name "用户名" git config --global user.email "邮箱"

生成ssh公匙、私匙 ssh-keygen -t rsa -C "your_email@youremail.com"三次回车

将id_rsa.pub的内容追加到authorized_keys 中 cat /home/wliana/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

其中id_rsa 为私钥,id_rsa.pub 为公钥

在github,进入Account Settings,左边选择SSH Keys,Add SSH Key, 粘贴cat /home/deepin/.ssh/id_rsa.pub获取的key

测试下是否配置成功 ssh -T git@github.com 按提示输入 yes 连接成功

Github和本地Git关联

远程仓库

在Github上新建一个远程仓库,最好不要勾选README.md

由于已经配置了RSA,可以直接使用SSH协议

本地仓库

可参照上图命令

  1. 进入文件夹,使用git init变成可Git管理的库(或者在文件夹中新建一个.git文件夹)
  2. 将项目粘贴到仓库中(粘贴后可以通过git status来查看你当前的状态)
  3. git add . 把该目录下的所有文件添加到仓库(注意点是用空格隔开的)
  4. git commit -m提交注释把项目提交到仓库

关联及推送

$ git remote add origin git@<用户名>/<目标仓库>.git

关联好之后我们就可以把本地库的所有内容推送到远程仓库

首次推送使用:$ git push -u origin master 新建的远程仓库是空的,所以要加上-u

远程仓库里面有了内容之后使用:$ git push origin master

准备回到github上看看,结果又连不上了,看来远程仓库还是的选国内的啊…哦豁,连博客都挂了…

同时关联到码云

基于上面github不太稳定的原因,打算同时关联到码云。

注册并添加公钥,创建仓库

多么熟悉的味道..

下面参照官方文档 如何保持码云Gitee和Github 同步更新

查看目前关联的远程仓库,发现有一个orgin , 这是之前关联到github上的,为了便于管理,删掉并重命名

先删除已关联的名为origin的远程库 git remote rm origin

通过 git remote add <name> <url-of-remote>指令来添加远程仓库

git remote -v查看远程库信息,可以看到两个远程库

返回码云仓库,已更新, 大功告成

流程及命令

工作区域

Git分为三个工作区域:工作区 Working Directory暂存区 Staging AreaGIT仓库 repository

工作区(Working Directory)就是源码所在目录

隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

文件状态

  • Untracked 未追踪,即新建一个文件,还没有被git追踪,不会到版本库内。
  • Unmodified 未修改,该文件在git版本库内,但是还没有被修改。
  • modified 已修改,该文件在git版本库,已经修改,但还没有暂存。
  • Staged 已暂存,有修改的文件已经通过git add添加到暂存区

仓库内文件的状态可以通过git status查看。

分支管理

查看分支:git branch

创建分支:git branch 分支名

切换分支:git checkout 分支名 或者git switch 分支名

创建+切换分支:git checkout -b 分支名或者git switch -c 分支名

合并某分支到当前分支:git merge 分支名

删除分支:git branch -d 分支名

假设分支为dev, 合并Fast-forward“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

常用命令

命令思维导图,来自文章 git常用操作命令总结(思维导图)

忽略特殊文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。

不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

在IDEA中使用Git

在工具栏找到VCS ,新建Git目录

或者直接打开一个已经初始化了的工作区目录

这时IDEA右上角多了一些git操作

分别是pull 拉取更新;commit 提交;历史版本;回滚

在commit时就可以勾选需要同步的文件

history会在下面出现一个管理界面

同时VSC内容也发生了变化

这样就可以直接使用IDEA内置的工具来进行操作了


讲道理,为什么图这么糊?!强迫症选手根本无法忍受…明明我本地的图片很高清,上去后台看了一下,是原图..所以PicGo和OSS都没有压缩,那问题难道出在Typora的分辨率上? 打开以前Blog看了一下,好像还真是..