Git的基本知识及应用

安装

方法一:在windows点击安装

方法二:安装 GitHub Desktop

配置

# 查看配置
$ git config --list
$ git config --list --show-origin

# 配置用户信息
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以不带--global

文件状态

工作目录下文件的两种状态:已跟踪或未跟踪。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录。

输入图片描述

  • Untracked files 未跟踪文件
  • Changes to be commited 暂存文件
  • Changes not staged for commit 已跟踪文件内容发生变化,但没有放入暂存区

基础

克隆现有的仓库

$ git clone https://github.com/libgit2/libgit2

基础操作

# 检查当前文件状态
$ git status	

# 跟踪文件		
$ git add <file>			
$ git add .					//跟踪所有,即将所有文件加入暂存区

# 提交文件
$ git commit 				//提交暂存文件
$ git commit -m "说明"		//提交并附加说明
$ git commit -a 			//自动把所有已经跟踪过的文件暂存起来一并提交

# 移除文件
$ git rm <file>				//移除跟踪并删除文件
$ git rm -f <file>   		//移除暂存
$ git rm --cached <file> 	//移除跟踪但不删除文件

# 查看历史提交记录
$ git log					
$ git log -p  				//展开提交的内容差异
$ git log -p -2				//最近的两次更新
$ git log --stat			//显示简要的增改行数统计

# 查看已暂存和未暂存的更新
$ git diff					//查看尚未暂存的文件更新内容
$ git diff --cached 		//查看已经暂存起来的文件和上次提交时的快照之间的差异

# 撤销操作
$ git commit --amend		//修改最后一次提交
$ git reset HEAD <file>		//取消某个文件的暂存
$ git checkout -- <file>	//取消对文件的修改

# 文件重命名
$ git mv <file_from> <file_to>	

忽略某些文件

创建一个名为 .gitignore 的文件,列出要忽略的文件模式

*.a							//忽略所有 .a 结尾的文件
build/						//忽略 build/ 目录下的所有文件

远程操作

# 查看远程仓库
$ git remote						//列出远程库的简短名字
$ git remote -v						//显示对应的克隆地址
$ git remote show [remote-name]		//查看指定远程仓库信息

# 添加远程仓库 
$ git remote add [shortname] [url]  //shortname通常为origin

# 从远程抓取代码到本地
$ git fetch [remote-name]				//拉取到当前工作分支 不自动合并
$ git pull [remote-name] [branch-name]	//下载代码并合并

# 上传代码到远程仓库
$ git push [remote-name] [branch-name]
$ git push origin master  				//举例 把本地的master分支推送到origin服务器上

# 远程仓库重命名
$ git remote rename [old-remote-name] [new-remote-name]

# 移除远程仓库
$ git remote rm [remote-name]

标签操作

# 列显已有的标签
$ git tag
$ git tag -l 'v1.4.2.*'				//用特定搜索模式列出符合条件的标签

# 新建标签
$ git tag [tag-name]				//保存着对应提交对象的校验和信息的文件
$ git tag -a [tag-name]				//含附注类型的 独立对象 有自身的校验和信息
$ git tag -s [tag-name]				//有私钥时 签署标签
$ git tag -v [tag-name]				//验证标签 此命令会调用 GPG 来验证签名 有签署者的公钥存放在 keyring 时才能验证

# 查看标签版本信息
$ git show <tag>	

分支操作

# 创建分支
$ git branch [branch-name]
$ git checkout -b [branch-name] 	//新建并切换到该分支

# 切换分支
$ git checkout [branch-name]

# 删除分支
$ git branch -d [branch-name]

# 合并分支
$ git merge [branch-name]			

# 查看分支清单
$ git branch
$ git branch -a						//查看所有分支
$ git branch -v						//查看各个分支最后一个提交对象的信息
$ git branch --merged				//筛选出已经与当前分支合并的分支
$ git branch --no-merged			//筛选出尚未与当前分支合并的分支

# 推送本地分支
$ git push [remote-name] [branch-name]	//remote-name一般为origin

# 跟踪远程分支
$ git checkout --track [remote-name]/[branch-name]

# 删除本地分支
$ git branch -d  <branch>

# 删除远程分支
$ git push [remote-name] --delete [branch-name]
$ git push [remote-name] :[branch-name]

# 修改分支名称
git branch -m [old-branch] [new-branch]
git push --delete origin [old-branch]
git push origin [new-branch]
git branch --set-upstream-to origin/[new-branch]

服务器上的Git

本地协议

远程仓库在该协议中的就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如 NFS)拥有访问权。如果你使用一个共享的文件系统,就可以在一个本地文件系统中克隆仓库,推送和获取。

$ git clone /opt/git/project.git
$ git clone file:///opt/git/project.git
$ git remote add local_proj /opt/git/project.git	//添加一个本地仓库作为现有 Git 项目的远程仓库

HTTP/S 协议

$ git clone http://example.com/gitproject.git

在使用git开发时,需要在每次同步操作输入用户名和密码。为了省去每次都输入密码的重复操作,我们可以在本地新建一个文件,来存储你的用户名和密码,只需要在第一次clone输入用户名和密码,这些信息就被存储起来,以后就可以自动读取

git config --global credential.helper

SSH 协议

SSH 是同时支持读写操作的网络协议。SSH 同时也是一个验证授权的网络协议

$ git clone ssh://user@server/project.git
$ git clone user@server:project.git			//默认ssh

大多数 Git 服务器都会选择使用 SSH 公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权。 下面是生成SSH公钥

$ cd ~/.ssh				//首先确认是否已经有一个公钥 SSH公钥默认储存在~/.ssh。若有,`.pub` 后缀的文件就是公钥,另一个文件则是密钥
$ ssh-keygen			//若没有-->生成ssh公钥 它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空
$ cat ~/.ssh/id_rsa.pub	//获取公钥 复制 `.pub` 文件的内容然后给管理员。如果你用github,就创建一个ssh公钥并把内容复制过去就可以了

Git托管服务

如果不想经历自己架设 Git 服务器的麻烦,网络上有几个专业的仓库托管服务可供选择。
目前比较常用的有github、gitee、coding

环境变量配置

windows环境下git的环境变量配置( 可执行文件不需要配置 绿色安装版才需要)

  1. 从官网下载git软件 .msi格式 安装
  2. 找到你的git的安装目录,复制
  3. 控制面板——系统——高级系统设置——环境变量——path——编辑 把软件安装包的路径复制进去:
  • 你的git的安装目录in;
  • 你的git安装目录libexecgit-core;

开发工具配置

以vscode为例,配置之后就可以直接在终端使用git命令了

  • 设置—搜索user.setting—对setting.json进行编辑
    image.png
  • 添加“git.path”:"Git实际安装地址"
    image.png
原文地址:https://www.cnblogs.com/sanhuamao/p/13596708.html