首页 > 其他分享 >Git使用教程

Git使用教程

时间:2022-08-19 13:13:56浏览次数:97  
标签:文件 教程 git hint use Git master branch 使用

Git使用教程

说明:

  • 本文中的表述存在主观理解,准确说法请移步官方文档

  • 本文的内容仅为作者常用的功能介绍且在各IDE中会有图形化操作方法作为替代,例如VS,JetBrains系列的Version Control功能

安装与配置

安装

sudo pacman -S git

配置

git config --global user.name "用户名"
git config --global user.email "邮箱地址"
git config --global core.editor vim # 编辑器可自定义,提交时可能会用到,eg:emacs,vim,nano……

以下命令可以查看git的使用方法

[root@localhost]git
[root@localhost]man git

基础功能

创建git仓库

git init

显示如下

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint:   git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint:   git branch -m <name>
Initialized empty Git repository in /home/<dir_name>/.git/

查看仓库状态

git status

显示如下

On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)

追踪文件

对于没有追踪过的文件显示如下

On branch master
No commits yet
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        test
nothing added to commit but untracked files present (use "git add" to track)
git add <file>	# 支持正则表达式,下文文件名采用test

追踪后,状态如下

On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test

假设此时对文件进行了修改,状态变为

On branch master
No commits yet
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   test
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   test

信息第3、6行的意思是之前已经添加了test文件,但是修改并没有被添加。

想要查看对文件做的修改情况,可以使用git diff查看

git diff

提交文件

git add test 			 # 提交之前做过的更改
git commit -m "备注"		# 如果提交时没有添加备注信息,直接`git commit`,终端模拟器会打开默认编辑器,用户也可以在这个文本文件中添加备注信息

提交显示如下

[master (root-commit) 1dd096f] version1.1
 1 file changed, 1 insertion(+)
 create mode 100644 test

此时状态为

On branch master
nothing to commit, working tree clean

到此,创建的文件已经提交到git仓库。

版本管理

修改日志

git log					# 查看修改记录
git blame <filename>	# 查看指定文件修改目录

版本回退

$ git reset HEAD^       # 将所有文件回退到上一个版本
$ git reset HEAD^ test  # 将test回退到上一个版本
$ git reset <version>	# 回退到指定版本

HEAD的右上角^个数表示版本

HEAD:当前版本,HEAD:上一个版本,HEAD^:上上个版本……

私有文件

用户可能会添加一些文件,这些文件只想自己看到,并不想提交到git仓库,只需要在.gitignore文件中添加该文件文件名即可

vim .gitignore
<filename>	# 后文采用ignore_file
:wq
或者
echo "<filename>" >> .gitignore

此时状态如下

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        .gitignore
nothing added to commit but untracked files present (use "git add" to track)

可以发现,为被追踪的文件中不显示ignore_file

另外要说明,之前git已经追踪的文件即使被添加到.gitignore也不会起作用,可以手动让git不在追踪该文件

git rm --cached <filename>

显示如下

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        deleted:    <filename>

这里显示的deleted并不是删除了这个文件,只是再git的管理系统中删除

Git分支

在前面的提示信息中都会有On branch master,如果不添加分支,就直会有这一条工作线路。假设用户相对某一部分文件进行大幅度的修改,可以创建一个分支,再这个分支中进行。

创建分支

git branch <branch name>	# 后文采用sub
git branch sub	# 删除分支

切换分支

git checkout sub	# 某些shell主题会显示当前分支名

在分支中进行一番操作后,切换到主分支git checkout master,这时的资源管理器器中可能不会显示sub分支中的内容,此时需要将分支中的内容合并到主分支master

git merge sub

到此管理本地文件结束,如果要多人合作完成一个项目,可以push到GitHub上并邀请合作者

Git与GitHub

git remote add origin <GitHub仓库地址>
git push --set-upstream origin master	# 忽略.gitignore中添加的文件
git clone <GitHub仓库地址>
git pull 								# 下载最新的仓库

标签:文件,教程,git,hint,use,Git,master,branch,使用
From: https://www.cnblogs.com/euler0525/p/16601647.html

相关文章

  • java:菜单的使用
    1.JMenuBar菜单条2.JMenu菜单3.JMenuItem菜单项菜单条包含菜单,每个菜单有包含一些菜单项。菜单也可以修改布局,默认是流式布局,可自定义。直接上一段代码演示:1impor......
  • 使用阿里读取 excel文件遇到的问题
    Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Requestprocessingfailed;nestedexceptioniscom.alibaba.excel.exc......
  • jenkins+gitlab项目发布
    centeros7安装配置环境jdk1.8 1.先卸载centeros自带jdkrpm-qa|grepopenjdk2.删除rpm-e--nodeps3.再次查询rpm-qa|grepjdk 4.在usr/lo......
  • download-git-repo 下载github的包踩坑
    最近再自制搭建一个脚手架,用这个库出现了两个错误,分别谈一下解决方案:1.Error:'gitclone'failedwithstatus128解决:地址要保证使用的是https模式,地址加前缀,例如:dire......
  • vue3+ts项目中基本使用
    import{ref,reactive}from 'vue'  // 引入refreactive   //  ref定义响应式数据中基础数据类型  reactive定义 响应式数据中复杂数据类型  ......
  • 阅读《计算机图形学编程(使用OpenGL和C++)》6
    同一个场景渲染不同的对象,一种简单的方法是为每个模型使用单独的缓冲区。每个模型都需要自己的模型矩阵,这样我们就需要为我们渲染的每个模型生成一个新的模型-视图矩阵。还......
  • 软件发布时 生成发布日志文件 单点登录 getGitInfo.bat
    需求每次发包的时候,前端是3个包,如果后期出现问题,不好回查所以把当前项目的git信息记录下来以便回查第一次手动写了下,发现比较麻烦,所以写个脚本,每次发布的时候运行下即......
  • 关于SpringBoot整合redis使用Lettuce客户端超时问题
    问题起因使用到Lettuce连接redis,一段时间后不操作,再去操作redis,会报连接超时错误,在其重连后又可使用。原因是:Lettuce自适应拓扑刷新(Adaptiveupdates)与定时拓扑刷新(Peri......
  • k8s上使用statefulset搭建es集群
    环境要求:k8s多节点集群,最好是kubespherek8s集群,k8s需要使用StorageClass实现:vim es.yamlapiVersion:policy/v1beta1kind:PodDisruptionBudgetmetadata:name:ela......
  • Jmeter(四十九) - 从入门到精通高级篇 - jmeter使用监视器结果监控tomcat性能(详解教程
    ------------------------------------------------------------------- 转载自:北京-宏哥https://www.cnblogs.com/du-hong/p/13667219.html -------------------------......