文章目录

  • 一、Git
    • 1.1 Git的工作流程
    • 1.2 Git的基本使用
      • 1.2.1 创建版本库(本地仓库Repository)
      • 1.2.2 添加文件
      • 1.2.3 修改文件
      • 1.2.3.1 修改过程
        • 1.2.3.2 查看修改历史(**)
        • 1.2.3.3 还原修改(错删文件)
      • 1.2.4 差异比较
      • 1.2.5 删除文件
      • 1.2.6 忽略文件语法规范
      • 1.2.6 案例:将java工程提交到版本库
    • 1.3 使用git命令将项目上传到githup
  • 二、 远程仓库
    • 2.1 添加远程仓库
    • 2.2 ssh协议
      • 2.2.1 什么是ssh?
      • 2.2.2 ssh密钥生成
      • 2.2.3 ssh密钥配置
    • 2.3 同步到远程仓库
      • 2.3.1 方式一:使用Git Bash命令同步
      • 2.3.2 方式二:使用TortoiseGit同步
    • 2.4 从远程仓库克隆
      • 2.4.1 使用Git Bash
      • 2.4.2 使用tortoiseGit
    • 2.5 从远程仓库中获取代码
    • 2.6 搭建私有服务器
      • 2.6.1 服务器搭建
        • Linux一些常用快捷键及命令
      • 2.6.2 连接服务器
  • 三、分支管理
    • 3.1 创建合并分支
    • 3.2 使用TortoiseGit实现分支管理
      • 3.2.1 创建分支
      • 3.2.2 合并分支
      • 3.2.3 解决冲突
  • 四、在IntelliJ IDEA中使用git
    • 4.1 在IDEA中配置git
    • 4.2 将工程添加至git
    • 4.3 从远程仓库克隆
    • 4.4 从服务端拉去代码
  • 四、怎样在GitHup上找到自己感兴趣的开源项目

一、Git

1.1 Git的工作流程

一般工作流程如下:
1.从远程仓库中克隆 Git 资源作为本地仓库。
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区。
4.提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5. 在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库

  • 工作流程图:

1.2 Git的基本使用

如果要在本地仓库中进行上传文件的话,一定要将文件放入到工作目录中去(工作目录就是你所建立本地仓库(Repository)的根目录)

  • 查看本地仓库的内容

直接选中TortoiseGit里面的版本库浏览器

1.2.1 创建版本库(本地仓库Repository)

  • 方法一:使用GitBrash

右击工作目录中,然后点击Git Bash Here,然后再再命令窗口中输入git init即可;

  • 方法二:使用TortoiseGIt

使用TortoiseGit时只需要在目录中点击右键菜单选择“在这里创建版本库”

注意:创建完成本地仓库后,在此目录下回新添加一个“.git”的隐藏文件

  • 概念:
    ①版本库:“.git”目录就是版本库,将来文件都需要保存到版本库中
    ②工作目录:包含“.git”目录的目录,也就是.git目录的上一级目录就是工作目录。只有工作目录中的文件才能保存到版本库中

$ rm -rf .git #删除本地仓库

1.2.2 添加文件


添加完成后文件将进入暂存区,并没有提交到本地仓库,需要进行commimt提交,进行提交的时候一定要写日志内容(就是写修改了什么之类的)

1.2.3 修改文件

1.2.3.1 修改过程

①被版本库管理的文件不可避免的要发生修改,此时只需要直接对文件修改即可。修改完毕后需要将文件的修改提交到版本库
②修改完成后点击提交即可(记得在提交的时候写上日志)

1.2.3.2 查看修改历史(**)

1.2.3.3 还原修改(错删文件)

在你误删文件还没有进行commit的时,可以通过还原将误删的文件进行还原过来

1.2.4 差异比较

1.2.5 删除文件

删除文件:直接进行文件的删除然后提交就可以了

1.2.6 忽略文件语法规范

空行或是以 # 开头的行即注释行将被忽略。
可以在前面添加正斜杠 / 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。
可以在后面添加正斜杠 / 来忽略文件夹,例如 build/ 即忽略build文件夹。
可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
* 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"或".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件); [] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; ? 用来匹配单个字符。
看了这么多,还是应该来个栗子:
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf

1.2.6 案例:将java工程提交到版本库

  • 第一步:将参考资料中的java工程project-test复制到工作目录中
  • 第二步:将工程添加到暂存区
  • 第三步:忽略文件或文件夹(一般像out,idea没用的文件文件可以进行忽略)


选择保留本地文件。完成后在此文件夹内会多出一个.gitignore文件,这个文件就是文件忽略文件,当然也可以手工编辑。其中的内容就是把bin目录忽略掉。

  • 第四步:先将.gitignore文件添加到暂存区
  • 第五步:将java项目代码进行commit提交到版本库

1.3 使用git命令将项目上传到githup

  • 其他的一些常用git命令

二、 远程仓库

2.1 添加远程仓库

直接在githup上新建一个远程仓库

2.2 ssh协议

2.2.1 什么是ssh?

SSH 为 Secure Shell(安全外壳协议)的缩写,由 IETF 的网络小组(Network Working Group)所制定。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题

2.2.2 ssh密钥生成

右击鼠标点击Git Bash Here然后执行命令ssh-keygen-t rsa 生成公钥和私钥

执行命令完成后,在window本地用户.ssh目录C:\Users\用户名.ssh下面生成如下名称的公钥和私钥

2.2.3 ssh密钥配置

将公钥复制到githup官网上的setting里面的SSH and GPGkeys里面

2.3 同步到远程仓库

2.3.1 方式一:使用Git Bash命令同步

注意:在githup上创建仓库的时候会有提示命令(一般使用ssh方式比较简单)

①在仓库所在的目录(D:\computerTools\GitRepository\Repository\repo1)点击右键选择“Git Bash Here”,启动git bash程序
②然后在git bash中执行如下语句:
git remote add origin git@github.com:sublun/mytest.git
git push -u origin master

  • 如果出现一下错误

    那样就先执行如下命令:$ git remote rm origin
    再执行上面命令

2.3.2 方式二:使用TortoiseGit同步

  • 先配置网络


    Url:远程仓库的地址
    推送URL:也是相同的
    Putty密钥:选择刚才生成的密钥中的私钥
  • 同步提交

2.4 从远程仓库克隆

克隆远程仓库也就是从远程把仓库复制一份到本地,克隆后会创建一个新的本地仓库。选择一个任意部署仓库的目录,然后克隆远程仓库

2.4.1 使用Git Bash

$ git clone git@github.com:sublun/mytest.git

2.4.2 使用tortoiseGit


2.5 从远程仓库中获取代码

Git中从远程的分支获取最新的版本到本地有这样2个命令:
1.git fetch:相当于是从远程获取最新版本到本地,不会自动merge(合并代码)
2. git pull:相当于是从远程获取最新版本并merge到本地
上述命令其实相当于git fetch 和 git merge
在实际使用中,gitfetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并
如果使用TortoiseGit的话可以从右键菜单中点击“拉取”(pull)或者“获取”(fetch)

2.6 搭建私有服务器

2.6.1 服务器搭建

搭建Git服务器需要准备一台运行Linux的机器,在此我们使用CentOS。以下为安装步骤:

  • 1、安装git服务环境准备
    yum -y install curl curl-devel zlib-devel openssl-devel perl cpio expat-devel gettext-devel gcc cc
  • 2、下载git-2.5.0.tar.gz
    1)解压缩
    2)cd git-2.5.0
    3)autoconf
    4)./configure
    5)make
    6)make install
  • 3、添加用户
    adduser -r -c ‘git version control’ -d /home/git -m git
    此命令执行后会创建/home/git目录作为git用户的主目录
  • 4、设置密码
    passwd git

Linux一些常用快捷键及命令

登录及内部命令操作

  • login:root password:xxzj…
  • Ctrl + Alt 跳出Linux系统中鼠标位置进入本机中
  • Ctrl + L 实现快熟清屏
  • git操作 自己虚拟机上安装的git中的用户名和密码都是git
Linux命令 作用
Ctrl + Alt 快速清屏
cd 切换目录
pwd 查看用户当前的目录
cd. . 回到上一级目录
cd ~ 进入用户主目录的绝对路径名
ls 显示文件或目录信息
ll (ls -l)的别名,作用:显示当前目录下文件详细信息
mkdir 在当前目录下创建一个空目录
cp 复制文件或目录
rm 删除文件或目录
cat 查看文本文件内容
mv 移动文件或目录、文件或目录改名
find 查找文件或目录
chmod 修改文件权限(例如:chmod 777 file.java //file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行)
鼠标右击Linux页面 粘贴操作
以斜线(/)开头 到文件位置的完整说明,任何时候指定文件都可以使用
不以斜线(/)开头 指定相对于你当前工作目录而言的位置

2.6.2 连接服务器

  • 私有git服务器搭建完成后就可以向连接github一样连接使用了,但是我们的git服务器并没有配置密钥登录,所以每次连接时需要输入密码。
    使用命令连接:
    $ git remote add origin ssh://git@192.168.25.156/home/git/first
    这种形式和刚才使用的形式好像不一样,前面有ssh://前缀,好吧你也可以这样写:
    $git remote add origin git@192.168.25.156:first
  • 使用TortoiseGit同步的话参考上面的使用方法

三、分支管理

3.1 创建合并分支

  • 在我们每次的提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD指针严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。
  • 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:

    每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长。
    当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

    你看,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化!
    不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

    假如我们在dev上的工作完成了,就可以把dev合并到master上。Git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并:

    所以Git合并分支也很快!就改改指针,工作区内容也不变!
    合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:

3.2 使用TortoiseGit实现分支管理

使用TortoiseGit管理分支就很简单了

3.2.1 创建分支

在本地仓库文件夹中点击右键,然后从菜单中选择“创建分支”:
如果想创建完毕后直接切换到新分支可以勾选“切换到新分支”选项或者从菜单中选择“切换/检出”来切换分支:

3.2.2 合并分支

分支切换到dev后就可以对工作区的文件进行修改,然后提交到dev分支原理的master分支不受影响。例如我们修改mytest.txt中的内容,然后提交到dev分支。


切换到master分支后还是原理的内容:

将dev分支的内容合并到master分支,当前分支为master。从右键菜单中选择“合并”:

再查看mytest.txt的内容就已经更新了:

3.2.3 解决冲突

两个分支中编辑的内容都是相互独立互不干扰的,那么如果在两个分支中都对同一个文件进行编辑,然后再合并,就有可能会出现冲突。
例如在master分支中对mytest.txt进行编辑:

然后提交到版本库

切换到dev分支,对mytest.txt进行编辑:



最后进行分支合并,例如将dev分支合并到master分支。需要先切换到master分支然后进行分支合并

出现版本冲突

冲突需要动手解决

在冲突文件上单机右键选择“解决冲突”菜单项:


把冲突解决完毕的文件提交到版本库就可以了

四、在IntelliJ IDEA中使用git

4.1 在IDEA中配置git

选择File→Settings打开设置窗口,找到Version Control下的git选项

选择git的安装目录后可以点击“Test”按钮测试是否正确配置

4.2 将工程添加至git

1)在idea中创建一个工程,例如创建一个java工程,名称为idea-git-test,如下图所示

2)创建本地仓库
在菜单中选择“vcs”→Import into Version Control→Create Git Repository


选择工程所在的上级目录。本例中应该选择idea-projects目录,然后点击“OK”按钮,在工程的上级目录创建本地仓库,那么idea-projects目录就是本地仓库的工作目录,此目录中的工程就可以添加到本地仓库中。也就是可以把idea-git-test工程添加到本地仓库中。
选择之后在工具栏上就多出了git相关工具按钮:

3)将工程添加至本地仓库

直接点击commit按钮,将工程提交至本地仓库

然后点击“commit”按钮,将工程添加至本地仓库。
4)推送到远程
在github上创建一个仓库然后将本地仓库推送到远程。
在工程上点击右键,选择git→Repository→push
或者在菜单中选择vcs→git→pus


点击“Define remote”链接,配置https形式的URL,git形式的无法通过。然后点击OK


点击“push”按钮就讲本地仓库推送到远程,如果是第一次配置推送需要输入github的用户名和密码

4.3 从远程仓库克隆

关闭工程后,在idea的欢迎页上有“Check out from versioncontrol”下拉框,选择git


此处仍然推荐使用htts形式的url,点击“test”按钮后显示连接成功。
点击OK按钮后根据提示将远程仓库克隆下来,然后导入到idea中

4.4 从服务端拉去代码

如果需要从服务端同步代码可以使用工具条中的“update” 按钮

四、怎样在GitHup上找到自己感兴趣的开源项目

  • 搜索词之间用空格隔开
  1. 按照项目名/仓库名称搜索(大小写不敏感)
    in:name xxx
  2. 按照README搜索(大小写不敏感)
    in:description xxx
  3. stars数大于xxx
    stars:>xxx
  4. forks数大于xxx
    forks:>xxx
  5. 编程语言为xxx
    language:xxx
  6. 最新更新时间晚于YYYY-MM-DD
    pushed:>YYYY-MM-DD

Git以及Githup的使用相关推荐

  1. git 命令 githup

    文章目录 前言 一.Git 常用命令 二 创建完成仓库再次提交 git / githup 可以用 vscode 提交代码 vscode找到当前要提交的根目录,打开终端 在终端右上角有一个下拉框,可以切 ...

  2. Githup邀请多人协作开发,某个人push的时候,显示remote:Permission to XXX/XXX.git denied to XXX

    这是因为没有邀请他一起协作,或是邀请他一起协作了,但没把邀请链接发给他,没有得到他的协作同意. 首先,打开Githup账号,看下你有没有邀请他们一起协作?Settings--->Manage a ...

  3. 前端、git入门至常用指令

    谈git首先要谈到svn.SVN是比git诞生更早.所以最核心的区别Git是分布式的,而Svn不是分布的.能理解这点,上手会很容易.用git就首先要明白git命令.下面是我自己整理经常使用到的git命 ...

  4. git fetch和git pull之间的区别--转载

    原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢 ...

  5. hexo+githup搭建属于自己的博客

    hexo+githup搭建属于自己的博客 第一次搭建博客,遇到不少坑.CSDN.bing.谷歌.百度上都有大神的博客教授如何一步一步搭建属于自己的博客.不过我毕竟属于小白,文字有时给我的感受不是那么的 ...

  6. python 版本控制及django,git的使用

    一.安装pyenv 安装pyenv首先安装好python编译需要的rpm包环境: yum install readline readline-devel readline-static -y yum ...

  7. 上传本地项目到githup(githup改版后将master改为main)

    从2020.10githup官方给出,将master改为main,导致我们在上传项目时,容易把项目依然提交到master分支,导致进入该repository时显示main分支,且为空的.为了避免一进入 ...

  8. ftp、go-fastdfs、HelpManual、redis、git、ngnix

    -----------------------------------------1.创建FTP服务器的两种方法----------------------------------------- 本文 ...

  9. git使用及上传代码到github

    git使用及上传代码到githup git使用 git安装 git上传代码到github git commit之后想要撤销 不删除工作空间改动代码,撤销commit,不撤销git add . git使 ...

  10. docker 中安装Jenkins-Jenkins持续化集成(GIT/maven/钉钉机器人)详细步骤

    Dokcker 中jenkins容器配置发布连接应用服务器 docker安装jenkins 如:192.168.86.129服务器中docker 部署jenkins >> 1. 拉取镜像 ...

最新文章

  1. 一个肯德基拖着6个“拖油瓶”的百胜中国,如何赢下中国市场?
  2. centos下redis安装
  3. 腾讯从百度挖来的AI Lab负责人张潼离职,要去阿里?...
  4. Shell 编程基础之 Case 练习
  5. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上
  6. free() 是如何释放不同内存区块大小的指针?
  7. php显示当前访问人数,PHP与jquery实时显示网站在线人数实例详解
  8. 2012、12、17
  9. 如何远程连接软件加密狗
  10. 会员等级图标js脚本
  11. 科普|股东需要对企业债务承担连带责任
  12. android版本5.1下载,嘉兴禾点点下载-禾点点 安卓版v5.1.1-PC6安卓网
  13. Inventory文件扩展
  14. 陈丹琦 关系抽取 2020 sota ner
  15. ChatGPT介绍世界杯历史与编写足球游戏python程序
  16. 探店通系统,短视频矩阵源码,抖音矩阵系统,look
  17. 最坏适应算法c语言源码,首次适应算法,最佳适应算法,最坏适应算法源代码
  18. 硫酸软骨素-聚乙二醇-卵清蛋白,Chondroitin sulfate-PEG-OVA/Ovalbumin
  19. rtx2060为什么叫智商卡_二哈拆家,却把自己卡在了沙发里,智商确实令人捉急...
  20. latex 调整表格的行高_latex表格大小调整

热门文章

  1. IT男不得不看的影视剧---《数字追凶》
  2. ubuntu18.04清理磁盘空间
  3. 【正一专栏】阿根廷和葡萄牙都进不了世界杯可能吗?
  4. Leetcode995 Minimum Number of K Consecutive Bit Flips解决方案
  5. js浏览器 文本语音播报
  6. opencv实现图片及视频流(摄像头)的人脸检测
  7. word论文封面下划线对齐
  8. mw150r 虚拟服务器,水星MW150R V1.3路由器刷DD-WRT使用WIWIZ或wifiap做web认证登录
  9. python docx 表格复制粘贴_python Word 表格转 Excel
  10. 快速查看本机公网IP地址