Git使用(超详细)

github是一个远程仓库,代码托管平台,开源免费,我们可以把我们的代码工作空间存储到github上,这样就不怕丢失了,对于初学者,github的这项功能已经值得让程序员学习,而且他的功能远不只此,还包括版本控制,以及团队共同开发等,都是对程序员编程有很大帮助的。而git则是帮助我们远程连接操作仓库的客户端。

当初我之所以下定决心学好git命令, 是因为我当时敲了好久的一个飞机大战程序掉了,掉了,对于刚入编程的我的打击是沉重的,所以。。。。。好了让我们开始学习吧!

创建仓库

虽然git的原配是github,但是毕竟github是在国外,有墙的存在限制了网速,所以可以选择使用国内的码云,这个和那个github几乎是一样的,也是开源的,估计制作码云的初衷就是因为github是在国外网速不行。
这里我就github 和码云怎么创建仓库的都将一遍吧

我电脑的系统是manjaro的,和windows有点不太一样,但是命令什么的是应该没有区别的
github创建仓库(github现在电脑连接不上。。。不过和码云的原理一样,emm~不能翻墙)
码云创建仓库

那里有个选择Private 或Public的,意思就是是不是开源,对于我们初学者来说都一样的,如果想分享我们的源码就选择public(一般也不会有人看。。)
然后直接点击new就创建好了
创建好了现在是一个空白仓库。并且他给了你几个命令提示

git config --global user.name "G521"//名字
git config --global user.email "2997385765@qq.com"//邮箱

这些有什么用呢,其实这相当与你的身份,平时上传提交都会显示,如果几个人共同开发一个项目,每个人都会上传提交,然后每次提交都会附加上面的信息,然后就能知道是谁提交了什么内容。(简单来说就是登记一下身份,在github上操作就会保留你的登记信息)

mkdir Test0//创建你的工作目录
cd Test0 //进入你的工作目录
git init //初始化  把这个文件夹变成git专属文件夹  注意,git的命令只能在git专属文件夹中才能使用
//然后你的这个目录中就会多一个.git 文件夹(本地仓库),隐藏属性,一般看不到的。
touch README.md //创建一个新文件。(开始  工作敲代码了)
/**
*敲完代码,工作到一半或者完工,接下来就是保存到仓库
*/
git add README.md //先把要保存的文件添加到暂存区 (使用 . 代表全部文件 "git add .")
git commit -m "first commit" //提交到本地仓库 (应该是提交到这个文件夹的.git文件夹中了,注意这个.git文件夹尽量不要动)
/**以上内容都是不需要联网的,都在本地操作,接下来要上传到远程仓库了
*本地仓库就是保存在了本地的.git文件中,但是这样还不够安全,上传到
*远程仓库也就是我们刚才在码云上创建的那个仓库中,这样不管我们的电脑有啥问题都不用担心文件会找不到了
*/
git remote add origin https://gitee.com/zyx2997385765/Test0.git //添加远程仓库 (使用https方式,等会再细说)
git push -u origin master  //将我们本地仓库上传到远程仓库。(会提示输入用户名和密码 )
这样我们就把文件上传到远程仓库了

刚一接触可能觉得很麻烦。但是这只是刚开始的时候,以后我们敲代码什么的都在那个Test0中,然后每次想要保存只需要git add . ---- git commit -m’提交信息’ ------git push 就行了
这只是普通使用,接下来我们个部分细说一下

Git使用详解

配置ssh

创建仓库就不用说了。
先说一下连接远程仓库的两种方法吧。我们上面使用的是https方式,每次上传都需要输入密码,可以选择ssh方式。ssh方式配置对于新手可能看着比较麻烦,但是只要用的多了还是很好配置的。
ssh和https使用的地址是不同的。接下来我们实际操作一下
首先要在本地生成ssh密钥。直接在git 窗口操作就行 输入命令:

ssh-keygen -t rsa

然后一路回车
找到.ssh文件夹中的id_rsa.pub 打开,复制内容
然后就可以使用仓库的ssh地址连接了。我们试一下
进入工作空间,(或者新创建一个文件夹)
进入之后

git init
git config --global user.name "你的匿名"
git config --global user.email "你的邮箱"
git remote add origin **ssh地址**
如果提示fatal: remote origin already exists.

说明已经连接到了远程仓库。
可以使用 git remote -v 查看

如果想要更换远程仓库可以使用git remote remove origin 删除
(那个origin 就是我们添加时候“git remote add origin ssh地址” 的‘origin’ 都是给远程仓库起的命令而已 )
也可以git remote add elseOrigin ssh地址

连接好远程仓库后
可以新建一个README.md 文件
这里说一下这个文件比较特殊可以被github/码云直接识别并展示
可以介绍一下你这个仓库的内容什么的,方便别人了解。

接下来就是保存了

git add

***git add*** 文件名

如果添加后反悔了不想把某个文件add 进去。
使用命令git rm --cached 文件名 可以删除刚add进去的文件
另外git add 是把文件添加到了暂存区
使用git status 可以查看当前工作区和暂存区的不同
例如git add .
新建一个文件test.txt

显示test.txt 是红色,表示没有add

**git add test.txt** 添加
**git rm --cached test.txt** 移除

git commit

**git commit -m'提交信息'**

这个提交信息还是有点重要的,特别是如果以后想要撤销回滚什么的就比较重要。

**git commit -am’提交信息‘** 如果没有创建新文件,只在源文件上修改什么的使用这个就可以省去**git add**

如果感觉刚才那个提交信息不对,想修改一下
方法一:

git commit --amend


(ctrl + x 返回)
方法二:

git commit -m“新的提交信息”
git rebase -i HEAD~n //把前n次的提交历史压缩为一个

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020022512033473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI5MjkzNA==,size_16,color_FFFFFF,t_70

git push

(ctrl + x 返回)
然后git push -u origin master
这是第一次提交 -u origin master 必须加上
之后提交就会默认为上面指定的origin仓库中的master分支

**origin**:是指仓库名。我们上面刚说过的,我们起的名字
**master**:分支名(先面细说)

如果git push 失败,可能是本地仓库和远程仓库不同步(本地仓库误删了什么东西导致的)
git pull 一下应该能解决问题,(把远程仓库拉下来同步)

分支

比如说我们最初一个源码是一个主干。
现在我们想增加功能,相当与给大树的主干增加一个分支
使用分支就可以每个人负责一个分支并且相互不影响。最后与主干合并,完成整个项目的开发

**git branch** :查看现有分支
加上参数 **-avv** 可以显示删除的分支,以及合并的分支(全部分支)
**git branch name** 创建新分支
**git checkout name** 切换分支   加上参数**-b** 先创建后切换。

我们现在master默认分支创建README.md文件
写入内容

git add READ.md
git commit -m''m"

创建并且换新分支fix-A
在READ.me文件中追加内容
-fix-A-

git add READ.md
git commit -m'fix-A'

切换回master

 **git branch -** (-代表上一次的分支)

查看README.md
然后合并分支

git merge --no-ff fix-A  然后输入合并信息

合并后查看README.md
分支是一个很重要的内容,还需要多用用才能熟练

回滚

比如我们想给程序优化一下,结果优化半路发现不行,处理不下去了,想回到之前的内容那就需要回滚了
先git reflog 可以查看一下历史记录

前面那些字母和数字是哈希码,等会会用,后面就是一些提示信息,都是我们写的或者自动生成的,所以以后写提交信息尽量写清楚 ,不然回滚的时候就比较乱,比如我们想回滚到没有合并之前,
git reflog 显示的内容都是操作之后才有的,所以需要找前一个,比如“merge -b…" 是刚刚合并后,我们要合并前的,就找下面的那个ae6a24e

git reset --hard ae6a24e

然后提示 HEAD is now at ae6a24e m
现在我们就回滚到了合并之前。

git log 可以查看日志,和git reflog 有点类似,不过git reflog 显示的是所有历史记录
git log 是显示以当前为终点的记录,(比如我们的工作进展到4 ,然后回滚    到2 ,那么git relog 显示的内容到4 ,而git log 显示的内容只到2)git log --graph 以图形化显示更直观

到这里,git 个人使用应该就差不多了,还有更多知识就需要自己努力去学了,大家努力啊git 真的很重要的,不要到时候代码掉了就晚了。。。

我的笔记:

其实如果英语好的话可以使用自带的-h提示
git -h 或者单独查询某个命令 git remote -h
单词也不是特别难,正好练练英语 ~

{
最后一个命令

git clone [https地址]

把别人的仓库克隆下来

}

Git入门与实践pdf(码云地址)

Git思维导图下载
有问题请留言哦——

Git使用命令(超详细)相关推荐

  1. 2020最新Git使用教程(超详细,很全面)

    Git使用教程 1.全局设置 设置用户信息,右键桌面打开"Git Bash Here"命令窗口,输入以下命令 git config --global user.name " ...

  2. Git指令,Git常用命令及详细用法

    目录 git config(查看/配置提交代码的用户名和url地址) git init(新建) git clone(下载) git pull(获取/下拉) git add(添加) git commit ...

  3. Git版本管理工具超详细(下载、安装、远程仓库的搭建、git指令)

    目录 01_Git概述 02_GIT相关概念(掌握) 03_Git下载与安装 04_Git本地操作-初始化工作区 05_Git本地操作-add与commit 06_Git本地操作-差异比较 07_Gi ...

  4. Git安装配置超详细教程

    学无止境 Java工程师的进阶之旅 Git详细教程在这里 目录 一.下载 二.安装 三.配置 一.下载 1.进入Git官网 2.点击下载 二.安装 选择 Git 安装位置,要求是非中文并且没有空格的目 ...

  5. git的操作说明超详细

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 个人在学习Git工作流的过程中,从原有的 SVN 模式很难完全理解Git的协作模式,直到有一天我看到了下面的文章,好多 ...

  6. 程序员必备:Git入门,超详细

    对于一个刚入行的程序员或者是大学生,我建议大家还是好好的把git学学,因为在现在大部分企业代码的管理工具都是使用Git,其实Git很简单,无非就是一些命令,我们平常多去用它,就能熟能生巧.我觉得你们可 ...

  7. LAMMPS—fix命令超详细解析

    文章来源:"分子动力学"公众号 链接:https://mp.weixin.qq.com/s/cCqQxB6HzXdGhe0P1h3ihg fix命令为一组原子施加fix约束. 使用 ...

  8. Git合并分支超详细解释

    摘自朱双印老师博客http://www.zsythink.net/archives/3470 在执行"合并"操作时,我们可以根据具体情况,选择不同的合并模式去合并,不同的合并模式对 ...

  9. 搭建空的maven多模块项目架构并且上传到远程git仓库(超详细 cmd命令版本)

    2019独角兽企业重金招聘Python工程师标准>>> 首先看标题分为二部分 搭建空的maven多模块项目 上传到远程git远程仓库 第一步详细教程: 一: 二: 注意点:记住什么都 ...

  10. Linux常用命令超详细版

    目录 系统命令行的含义 目录结构 /dev /tmp 关机重启注销清屏 线上查询以及帮助命令(2个) 文件和目录操作命令(12个) 1,ls 2,cd 3,pwd 4,cp 5,find 6,mkdi ...

最新文章

  1. SpringMVC源码解析 - HandlerAdapter - HandlerMethodArgumentResolver
  2. 关于asp.net中链接数据库的问题
  3. 【中级软考】测试用例 Test Case
  4. boost::allocate_shared相关的测试程序
  5. [转]仿163网盘无刷新文件上传系统
  6. 一文看懂 9 种Transformer结构!
  7. java程序内存加载_java内存加载机制
  8. 64qam带宽计算_信道带宽计算参考
  9. Qt 模型视图编程之表头设置
  10. 英雄联盟龙的传人皮肤爬虫
  11. Skin Cancer MNIST(皮肤癌患者相关数据集)
  12. 路由控制——ACL、IP-Prefix List
  13. Socket网络编程详解
  14. 【书籍】——机器学习与深度学习
  15. 山东初级消防设施操作员考前必背考点,模拟真题及答案
  16. 中奖名单 | “爱码士”,你好
  17. 大数据项目(基于spark)--新冠疫情防控指挥作战平台项目
  18. dbd mysql db_关于DBD连接mysql数据库
  19. 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)“
  20. Ubuntu16.04上卸载anaconda3

热门文章

  1. 陆奇演讲:2021不能错过的四大趋势
  2. Airflow的安装:在线安装、离线安装、问题汇总
  3. 达梦DCA培训考试笔记
  4. win10引导安卓x86_GPDwin安装安卓x86折腾记(上)
  5. 团队的形成、协作与成长
  6. 基于Java的人员信息管理系统
  7. 把手机照片视频传到电脑
  8. 手动安装couchdb并且指定版本 详细教程
  9. 安卓app新版本的检测与更新(升级)
  10. 【数据结构面试常见问题】