git学习笔记
git学习笔记

git学习笔记

git的基本使用

1.git的安装

首先安装git之后,会在右键菜单中出现git GUI和git BASH,两个选项,前者是git的可视化操作界面,后者是git的命令行界面,可以使用linux指令。

打开bash命令行之后,首先需要创建用户名称和邮箱

git config --global user.name "用户名"
git config --global user.email "邮箱"

然后创建一个空目录作为本地仓库的根目录,进入目录下,右键打开bash‘命令行

#初始化仓库
git init

出现.git文件夹说明创建成功

2.给较长的指令重新命名

~/表示当前用户的根目录

使用touch ~/.bashrc创建一个文件,其中添加指令

#用于输出git提交的日志信息
git log --pretty=oneline --all --graph --abbrev-commit

然后使用 source ~/.bashrc; 将其应用

git基本指令

git工作目录下的文件会存在几个不同的状态,这几个状态会随着我们使用git指令而发生变化。具体如下图:

提交

  • git add 工作区——>暂存区
  • git commit 暂存区——>仓库
  • git status #查看当前工作目录下的所有文件的状态(untracked,unstaged,staged)
  • git commit -m “这里写提交的日志信息”
  • git log [options] 查看提交日志
  • –all 显示所有分支
  • –pretty=oneline 将提交记录显示为一行
  • –abbrev-commit 使得commit信息更加简短
  • –graph 以图表的形式显示

版本回退

  • git reset –hard commitID 回退到指定提交的版本,commitID可以通过git log获得。

如果回退到先前版本之后还想回来,可以使用

git reflog 查看版本变更的历史日志,找到想跳转到的版本号id,使用

  • git reset –hard commitID 跳转

忽视指定文件

如果想不让git仓库管理文件夹中的某些文件,可以创建一个.gitignore文件,然后正在文件中添加不需要管理的文件名称,可以使用通配符匹配一类文件。之后的提交不会对这些文件有影响。

分支

  • git branch 查看分支
  • git branch “分支名” 创建分支
  • git checkout “分支名” 切换分支
  • git checkout -b “分支名” 创建分支并且切换到该分支
  • git merge “分支名” 合并分支,一般是合并其他分支到master分支
  • git branch -d “分支名” 删除分支,只能删除当前以外的分支,并且做各种检查
  • gut branch -D “分支名” 强制删除分支,不做任何检查

解决冲突

不同的分支在合并的时候可能会产生冲突,比如两个分支都修改了相同的文件的同一行。这时候合并需要处理冲突

git的解决方案是在冲突的地方标注起来,然后用户手动修改并再次提交。

手动删除之后,再次提交。

git远程仓库的使用

github配置

首先配置密钥对

ssh-keygen -t rsa
#创建公钥
#创建好的密钥会保存在~/.ssh/id_rsa.pub文件中

然后再github或者gitee上创建好仓库之后,配置好公钥,然后使用

ssh -T git@github.com
#测试是否配置成功

本地配置

#添加远程仓库到本地
git remote add origin git@github.com:Okinami2/git_test.git
#查看现有的远程仓库
git remote
#将本地仓库推送到远程仓库
git push origin matser

之后每次修改之后推送时使用git push 仓库名 分支名 即可

也可以使用 –set-upstream master:master绑定分支关系,之后直接使用git push origin推送

对远程仓库的操作

  • git clone 远程仓库的ssh地址 [保存在本地的目录名,缺省为远程仓库名]
  • gti fetch <远程仓库名> [分支名] //表示将远程仓库的所有更新获取到本地,如果没有指定分支名,则默认把所有分支都抓取到本地。

但是不会将分支与本地的当前分支进行合并而是保留下来

git pull <远程仓库> [分支名]

//将远程仓库的指定分支的修改拉取到本地,不指定分支则拉取所有修改,并合并到当前分支

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注