当前位置:   article > 正文

Git以及Githup的使用

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
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/605819
推荐阅读
相关标签
  

闽ICP备14008679号