一天学习使用git

简介: 一:Git GitHub gitlab 三者的介绍Git:是一个类似CVS,SVN的代码版本管理软件,用于敏捷高效地处理任何或小或大的项目,是一个完全分布式的版本控制工具分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没...

一:Git GitHub gitlab 三者的介绍

Git:是一个类似CVS,SVN的代码版本管理软件,用于敏捷高效地处理任何或小或大的项目,是一个完全分布式的版本控制工具

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步

GitHub:是一个用Git做版本控制的项目托管平台,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等,是程序猿发布和寻找好代码的天堂~

gitlab:是一款基于Git的项目管理软件

GitHub和gitlab都是基于Git建立的,可以说是git的衍生品

此处插一句广告,哈哈,GitHub是全球范围的代码托管平台,而码云是国内的代码托管平台,访问就比GitHub快多了。

或者可以利用域名重定向解决GitHub国内访问慢,方法在这: 武功秘籍

创建配置一个SSH密匙,在git bash命令框中执行命令 ssh-keygen -t -rsa -C "码云或者GitHub的邮箱地址",接着一路回车即可,最后就生成一个公钥(id_rsa.pub),可以放心给人看,一个秘钥(id_rsa),不能透露出去。

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub和码云只要知道了你的公钥,就可以确认只有你自己才能推送。GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

二:git常用命令的使用

注明:以下是根据廖雪峰大神的教程学习

img_a624df52e8fd337c3faad0c14d73b8a0.png
快速设置

1、git clone url地址(这个是代码托管地址) ——克隆远程仓库项目

    git clone -b 分支名 url地址  ——克隆指定分支的内容到本地

2、cd git-demo(本地新建的git仓库)——切换到本地git仓库

3、git status ——查看本地git仓库的状态

4、git add Readme.txt(这个是要添加的文件)——添加要提交的文件到你本地仓库的代码

5、git commit -m "提交信息"  ——提交到本地仓库

img_4bcc6fa5f746daf4a243fbd983ca47e4.png
git流程图
img_56c8d5498f45e58488682dd828385ba6.png
add操作把准备提交的文件添加到缓冲区
img_0f73c275b2015d642548253342e13247.png
commit把缓冲区的文件一次性提交到分支上

重要概念:Git跟踪并管理的是修改,而不是文件 (eg:每次修改,如果不add到缓冲区,就不会被加入到commit中)

6、git push  ——推送到远程仓库

7、从远程仓库上拉取项目下来到本地仓库2方式:

①git fetch + git merge = git pull (推荐用这种) ②git pull (太强制了,冲突时会直接覆盖本地)

8、git branch ——查看本地分支

9、git branch --all  ——查看所有分支(包括本地和远程)

10、git checkout dev  ——切换到dev(自己新建的)分支

        git checkout master  ——切换到master主分支

        git merge dev   ——合并dev分支到当前分支

11、git init  ——把当前文件夹初始化为git文件夹

12、git remote add origin url地址(远程代码仓库地址)——把本地的git仓库和远程的git仓库挂上钩

13、git diff 文件名  ——查看本地某个文件修改了什么内容

14、git branch 分支名  —— 新建一个分支

15、git log ——显示从最近到最远的提交日志,显示提交记录的详细信息

        如果嫌输出信息太多,可以加上参数 -pretty=oneline  显示提交记录的简短信息

img_15d5ead82b92f23ff02ddfcd522ae363.png

16、cat 文件名  ——查看某个文件的内容

17、git reset --hard HEAD^  ——把版本库回退到之前的版本,例如时光穿梭机,HEAD代表当前版本,HEAD^代表上一个版本,HEAD^^代表上         2个版本,HEAD~100代表上100个版本

img_c16d35ec90b578294902fa0f586aad3e.png

18、git reflog  ——用来记录你的每一次命令,所以找到了commit id就有后悔药吃了,但是记住如果push到远程仓库就没救了

img_ef4815d095f1e4846feeb2b821e9f9b3.png
廖雪峰Git教学
img_abd1b4b5a571a04a174be1ceaaca1312.png

19、git checkout -- 文件名 ——撤回未add到缓冲区的文件,记得--与文件名中间有个空格

img_e7d3170ea064291dc7c8f3fc25991bd1.png
img_0fb14e1f26fce62852305bb888ba7bd0.png
img_35e0f9d64b9cae7b5a7b754cc4a5cdab.png

20、git reset HEAD 添加到暂存区的文件名  ——git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区

21、rm 文件名  ——从本地工作区中删除文件,若是误删,可以使用git checkout -- 文件名 来从版本库中恢复文件到本地工作区。但要是使用命           令git rm 文件名 再git commit 提交删除操作就从版本库中删除了文件,就恢复不了到本地工作区了

22、git push -u origin master  ——由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

三:分支管理

img_1ca99407387385a87296122b862743c8.png
git分支图

你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

img_4ae1c93443e457dba271d5b240782a1b.png

多人协作开发的规则,如下,基本都是先pull最新的下来改完再push

img_f5261b534947ef92eee69e974cf2e857.png

四:Idea结合git开发

1、创建项目(我自已有一个小练习),把它初始化为git项目,成功后文件夹会产生一个.git文件,这个文件是记录仓库的配置和版本的,最好不要动。

img_7affe34b3b2b5e1b4a5ec0456fe3fd96.png

这些文件都会变红表示没有被追踪

img_7fd565eccc30ee0edea5da6b407adecb.png

2、右键项目 Git->Add 就把项目添加到缓冲区,文件就会变绿

img_6ca6fb241a488e005c6eafe3f85db95b.png

3、右键项目 Git->Commit  就把项目提交到本地仓库中

img_bbb5c550387e7866301f3db09a1cf509.png

确保没什么错的话就直接点commit了,如下

img_2135e42a858d8538db6f9323d8fcd9ca.png
img_6a5ec50f57722a1a5e2df67e693fe320.png

4、最后推送到远程仓库去

img_1714bbd14abe8fbc39c0bb423af34f07.png
img_3563b0e2206bd1ec6e7a23a53603d285.png

创建一个新分支并把代码上传到此分支

img_c1a69797f967a6c4a2218cbef97e931a.png
img_0a0b2dd258fa0342b37c95d4bbb21150.png

PS:使用命令行时遇到这个情况时:git add命令,git commit命令,最后git push命令推送到远程仓库,但是在git push 时出现了报错,百度了解决方案,如下,任选一种即可

img_5d00e88480cf04cb1424e3cbf85cb174.png
解决方案

这样本地的项目就推送到远程仓库了

推荐文章:

Git从码云Clone代码到本地

怎么用IDEA上传本地项目到码云/Github?

神功秘籍,讲的很好的一篇文章

IntelliJ IDEA下的使用git

相关文章
|
7月前
|
Linux 开发工具 C语言
Linux的学习之路:7、yum与git
Linux的学习之路:7、yum与git
63 0
|
15天前
|
开发工具 git
学习Git的最佳实践有哪些?
遵循这些最佳实践,能让你更高效地使用 Git,更好地管理项目的版本和协作。
|
15天前
|
存储 开发工具 git
Git 学习----基本概念
理解这些基本概念是掌握 Git 操作的重要基础,它们为有效地管理项目的版本和开发过程提供了支持。通过不断实践和使用 Git,开发者可以更加高效地协作和管理项目的演变
|
2月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
135 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
2月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
174 1
git学习三:git使用:删除仓库,删除仓库内文件
|
6月前
|
存储 网络安全 开发工具
【GIT】Git常用命令学习
【GIT】Git常用命令学习
68 1
|
2月前
|
Unix Shell 网络安全
git学习六:(bug总结)git@github.com: Permission denied (publickey).等
本文是关于解决在使用Git和GitHub时遇到的“git@github.com: Permission denied (publickey)”错误的指南。文章提供了详细的步骤,包括确认SSH Agent运行状态、检查密钥配置、确保密钥匹配、验证仓库URL、检查权限和代理设置,以及配置SSH文件。这些步骤帮助用户诊断并解决SSH认证问题。
181 0
|
2月前
|
编译器 网络安全 开发工具
git学习五:切换本地仓库出现的问题。修改git配置初始化。error:src refspec master does not match any。错误总结,送上几个案例
这篇文章是关于Git使用中遇到的一些问题及其解决方案的总结,包括切换本地仓库时的问题、修改Git初始化配置、以及解决"error: src refspec master does not match any"错误等。
63 0
|
7月前
|
安全 Shell 网络安全
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
Git学习---Git快速入门、Git基础使用、Git进阶使用、Git服务器使用(IDEA集成GitHub、Gitee、GitLab)、GitHub Desktop客户端
205 0
|
7月前
|
缓存 数据可视化 开发工具
学习 Git,看这一篇就够了!(下)
学习 Git,看这一篇就够了!(下)
128 0