我是靠谱客的博主 专注水池,最近开发中收集的这篇文章主要介绍Git学习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Git学习

      • 一个关于git的小游戏
      • 初始化本地库:使用git init指令
      • 设置签名
        • 1.设置项目级别/仓库级别的签名
        • 2.设置系统用户级别的签名
        • 两者签名可以同时存在,但两者不可都不存在。优先级方面,项目级别的签名大于系统级别的签名。
      • 查看git当前的状态:git status
      • 将文件交给git管理:git add hello.txt
      • 将暂存区的文件提交至本地库:git commit hello.txt
      • 文件从暂存区撤回:git rm --cached hello.txt
      • 将文件提交至本地库并进行提交描述:git commit -m "My first commit.new file hello.txt" hello.txt
      • 查看本地库中提交的历史版本
        • 1.git log 查看最详细的内容
        • 2.git log --pretty=oneline
        • 3.git log --oneline
        • 4.git reflog 可知道回到某个版本记录所需要的索引值
        • 5.git查看某次commit的具体内容
            • 1)查看commit内容
            • 2)查看最近n次提交的修改
        • 当日志过多时,出现(END)情况
      • 版本的回退和前进
        • 1.使用版本的索引值(推荐)
        • 2.使用^符号
        • 3.使用~符号
        • 4.使用-f命令
      • git reset的三个参数对比
        • 1.--soft
        • 2.--mixed
        • 3.--hard
        • git commit --amend修改已commit的注释信息
      • git help指令的运用
      • 回退提交至缓存区但未提交至本地库操作
      • 比较文件指令
        • 1.git diff hello.txt
        • 2.git diff [本地库中历史版本] [文件名]
        • 3.当未指定文件名时,将比较所有文件的差异
      • 分支管理
        • 1.什么是分支?
        • 2.分支操作
          • a.创建分支:git branch hot_fix
          • b.查看分支:git branch -v
          • c.切换分支:git checkout hot_fix
          • d.合并分支:git merge hot_fix
          • e.分支冲突
            • 冲突的表现
            • 冲突的解决
      • 远程库的建立
        • 1.对远程库取别名:git remote add [别名] [远程库的地址]
        • 2.查看远程库的信息:git remote -v
      • 将本地库文件推送至远程仓库
          • 当本地库的版本不是远程库最新版本时,不能推送至远程库,必须先拉取远程库的文件再进行推送。
      • 克隆操作:将远程库的文件复制至本地库
      • 远程库的拉取
      • git指令大全
      • 跨团队协作
      • SSH免密登录
      • idea操作git

一个关于git的小游戏

游戏连接

初始化本地库:使用git init指令

生成了一个.git的文件,该文件为隐藏文件。必须使用ls -la进行查看。

设置签名

1.设置项目级别/仓库级别的签名

设置用户名的指令:git config user.name zhangsan
设置用户邮箱的指令:git config user.email 6666@163.com
设置完成后,用户信息将保存至.git/config文件下

2.设置系统用户级别的签名

设置用户名的指令:git config --global user.name zhangsan
设置用户邮箱的指令:git config --global user.email 666@163.com
设置完成后,用户信息将保存至~/.gitconfig文件下

两者签名可以同时存在,但两者不可都不存在。优先级方面,项目级别的签名大于系统级别的签名。

查看git当前的状态:git status

将文件交给git管理:git add hello.txt

hello.txt是自己创建的文件,操作完成后文件将存至暂存区。

将暂存区的文件提交至本地库:git commit hello.txt

文件从暂存区撤回:git rm --cached hello.txt

文件将重新回到工作区,git不再管理该文件

将文件提交至本地库并进行提交描述:git commit -m “My first commit.new file hello.txt” hello.txt

引号内,填写自己提交的描述

查看本地库中提交的历史版本

1.git log 查看最详细的内容

多屏显示控制方式:
空格 向下翻页
b 向上翻页
q 退出

2.git log --pretty=oneline

3.git log --oneline

4.git reflog 可知道回到某个版本记录所需要的索引值

在这里插入图片描述
每个版本的最开始的黄色字体为索引值。

5.git查看某次commit的具体内容

1)查看commit内容

git show commit_id

2)查看最近n次提交的修改

git log -p -n
当n为1时,代表查看最近一次修改的内容

当日志过多时,出现(END)情况

可以按Q即可

版本的回退和前进

1.使用版本的索引值(推荐)

git reset --hard 【版本的索引值】

2.使用^符号

git reset --hard HEAD^
该指令只能后退,一个^表示后退一步。

3.使用~符号

git reset --hard HEAD~n
该指令只能后退,n表示后退n步。

4.使用-f命令

git branch -f master HEAD~3
该指令将master分支强制指向HEAD第3级父提交。

git reset的三个参数对比

1.–soft

HEAD^ 表示上一个版本;HEAD^^ 表示上上个版本;
HEAD~1表示上一个版本;HEAD~2 表示上上个版本;
仅仅移动本地库中的head指针
使用该命令后,会将指定版本为起始点,将起始点后所有的新增或修改后的代码保留,同时仅回退commit信息,不回退index信息。

2.–mixed

git reset --mixed HEAD^ 回退前一个版本
git reset --mixed HEAD^^ 回退上上个版本
移动本地库中的head指针和重置暂存区
使用该命令后,会将指定版本为起始点,将起始点后的所有新增或修改后的代码保留,同时回退commit和index信息。

3.–hard

移动本地库中head指针、重置暂存区、重置工作区
可参看文章详解

git commit --amend修改已commit的注释信息

1)输入命令,进入vim界面
git commit --amend
2)进行编辑模式
按i或者a进行编辑
3)修改注释信息,然后退出编辑模式
按键ESC可退出编辑模式(与vim用法相同)。
4)完成修改,查看结果
在非编辑模式下输入:wq(与vim用法相同)可保存退出。
参考文献

git help指令的运用

如git help reset可了解reset指令的相关参数

回退提交至缓存区但未提交至本地库操作

git reset --hard HEAD

比较文件指令

1.git diff hello.txt

比较工作区的文件与暂存区文件的差异

2.git diff [本地库中历史版本] [文件名]

比较工作区的文件与本地库历史版本的差异。如:git diff head^ hello.txt.

3.当未指定文件名时,将比较所有文件的差异

分支管理

1.什么是分支?

在版本控制过程中,使用多条线同时推进多个任务。
在这里插入图片描述

2.分支操作

a.创建分支:git branch hot_fix

其中hot_fix是新建的分支名

b.查看分支:git branch -v
c.切换分支:git checkout hot_fix

其中hot_fix是分支名

d.合并分支:git merge hot_fix

注意:合并分支时,必须将位置切换至需要合并的位置上,如主分支合并hot_fix分支,需切换至主分支上。然后对其进行合并。其中hot_fix是分支名。

e.分支冲突
冲突的表现

在这里插入图片描述

冲突的解决

第一步:编辑文件,删除特殊符号
第二步:协商沟通,将文件的冲突解决,保存退出
第三步:git add [文件名]
第四步:git commit -m “修改日志信息”

远程库的建立

可以自己github作为远程库。

1.对远程库取别名:git remote add [别名] [远程库的地址]

2.查看远程库的信息:git remote -v

将本地库文件推送至远程仓库

git push [远程库别名] [分支名]

当本地库的版本不是远程库最新版本时,不能推送至远程库,必须先拉取远程库的文件再进行推送。

克隆操作:将远程库的文件复制至本地库

git clone [远程库的地址]
克隆操作的效果:
1.完整将远程库的文件下载至本地库。
2.创建origin远程库地址别名
3.初始化本地库

远程库的拉取

1.pull = fetch + merge
2.git fetch [远程库别名] [远程分支名] 将远程库拉取至本地库
3.git merge [远程库别名/远程分支名] 将远程库的文件与本地库的文件合并
4.git pull [远程库别名] [远程分支名] 将远程库的文件拉取至本地库并合并

git指令大全

在这里插入图片描述

跨团队协作

使用github中fork和pull request.

SSH免密登录

1.进入家目录:cd ~
2.运行命令生成.ssh 密钥目录:ssh-keygen -t rsa -C [github的邮箱]
注意-C为大写字母
3.进入.ssh目录查看文件
cd .ssh
ls -lF
4.查看 id_rsa.pub 文件内容
cat id_rsa.pub
5.复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys
6.New SSH Key
7.输入复制的密钥信息
8.回到 Git bash 创建远程地址别名 git remote add origin_ssh [SSH远程库的地址]
9.推送文件进行测试

idea操作git

1.配置在setting中配置git
在这里插入图片描述
2.代码完成后,先创建一个本地仓库
在这里插入图片描述
3.将代码提交至本地仓库,单击commit提交。然后进行提交日志的编写。
在这里插入图片描述
4.显示历史版本,单击show history。可对两者版本进行比较
在这里插入图片描述
5.将本地库代码提交至远程库。点击push
在这里插入图片描述
然后点击define remote
在这里插入图片描述
最后将远程库的HTTP地址填入URL
在这里插入图片描述
显示push successful时,说明提交至远程库成功。
6.从远程库克隆代码
在idea界面选择git
在这里插入图片描述
将远程库的HTTP地址填入
在这里插入图片描述
7.将远程库的代码pull下来,更新代码。
点击update project按钮。
8.分支的操作
点击branches,可进行新建分支和切换分支的操作。
在这里插入图片描述
分支的创建
在这里插入图片描述
获取远程库的代码
在这里插入图片描述
idea中git的stash功能,可对未保存的分支进行分支切换
1.git stash ----------对本分支未保存的代码暂存,本分支代码回到未更改前的状态
在这里插入图片描述
2.create stash -------------创建暂存,本分支的代码就回到未更改前
在这里插入图片描述
idea中的unstash的功能(恢复代码未保存且更改的状态)
1.点击 unstash
在这里插入图片描述
2.点击后,呈现界面,选择自己的stash标签(0504) --------代码就回到未保存且代码更改的状态
在这里插入图片描述
通过idea合并本地的主、分支
1.确定在当前分支上
2.选中需要更新的代码
3.merge(merge into current)
在这里插入图片描述

查看远程库的地址
在这里插入图片描述
idea提交代码的顺序(建议):
add–>commit—>pull–>push
原因详解
idea解决分支冲突
在这里插入图片描述
当出现冲突时
先git—>stash changges 保存当前的自己版本
然后git—>pull 拉取远程库的版本
最后git—>Unstash changges 手动合并冲突

9.idea中,修改提交的内容(reword)
在这里插入图片描述

最后

以上就是专注水池为你收集整理的Git学习的全部内容,希望文章能够帮你解决Git学习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部