对 git 命令的笔记及个别小问题

git 命令

最近发现好多文章中对 git 初始配置的命令描述不是很详细,容易让人理解错,在这里谈一下我遇到的问题。

新电脑初始化

生成 ECDSA 密钥,在 git bash 中输入如下命令。
ssh-keygen -t ecdsa -b 521 -C “your_email@example.com”
生成好了之后会在~/.ssh目录中看到多出两个文件id_ecdsa和id_ecdsa.pub,分别为私钥和公钥。
之后放在 github 的 SSH keys 页面。

常用笔记

基础指令
-d --delete:删除
-D --delete + force的快捷键
-f --force:强制
-m --move:移动或重命名
-M --move --force的快捷键
-r --remote:远程
-a --all:所有

ls 查看
touch 新建
touch .gitignore 忽略不加入仓库
vim .gitignore
sudo touch 管理员权限新建
cd 进入文件
cd … 退出文件
cd … # 进入上一个文件夹
cd …/… # 进入上两个文件夹
cd - # 去到进入当前文件夹之前的那个文件夹
mkdir 新建文件夹(一般就是仓库名)
rm 你想删除的文件名
rm -r 你想删除的文件夹 涉及到文件夹都加-r
ll -a 看出所有文件夹(包括隐藏)
git add . 加入缓存区
git commit (注释)
git reset . 删除缓存区的东西包括注释
git diff 查看过程
git reflog 查看日志
git log 查看修改日志(详细版)

git reset HEAD 文件名
git checkout -b dev 创建 dev 分支,然后切换到 dev 分支
git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令:
git branch dev 创建分支
git checkout dev 切换分支
git branch 查看本地所有分支
git branch -r 查看远程所有分支
git branch -a 查看本地和远程所有分支
git branch -d test 删除 test 分支
git branch -m 原名 新名 分支改名

git merge dev 将 dev 分支合并到当前分支

git init 创建仓库

git remote add origin git@github.com:获取仓库地址(绑定)
git remote remove origin 取消绑定
git remote -v查看是否有绑定
git config --global --get core.autocrlf 自动配置
git add -A 将所有内容添加到缓存区
git add test.txt 将 test.txt 从工作区提交到暂存区
git commit -m “init files”
git commit -m “readme.md” 创建readme文件
git push -u origin master第一次上传
git push 以后上传
git reset head ^ --hard //commit 修改
git reset head //add 修改
git revert head 撤销 前一次

vim +“文件名”编辑文件(若没有会自动创建)
cat 查看文件内容
vim进入后
输入模式进入 i
输入模式退出 先点击Esc 然后输入: 最后wq

直接拉取并合并最新代码
拉取远端 origin/master 分支并合并到当前分支
git pull origin master
git pull origin dev

冲突处理:
git push 时提示错误
git pull --rebase
git add .
git rebase --continue
git push origin HEAD:main
git status
git status pop

<<<<<
远程代码
========
本地代码
>>>>>>>>

图文展示(只针对自己遇到的问题)

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

user.name后添加:用户 GitHub 的名字
user.email后添加:用户注册 GitHub 时所用邮箱
我印象中好多初学者都不知道

在使用git add 时报错:
warning:LF will be replaced by CRLF in ××××.××(文件名)
The file will have its original line ending in your working directory.

git config --global --get core.autocrlf

用这条语句表示
为true【config --global core.autocrlf true】
在任何时候添加(add)文件到git仓库时,git都会视为它是一个文本文件(text file)。
它将把crlf变成LF。

为false【config --global core.autocrlf false】
为false时,line endings将不做转换操作。文本文件保持原来的样子。

初次使用

已存在的项目

echo "# ording" >> README.md
git init
git add .
git commit -m "first commit"
git remote add origin git@你的GitHub地址
git push -u origin master

拉取不到最新仓库

git fetch --all
git reset --hard origin/master
git pull

OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

完整报错:
fatal: unable to access 'https://github.com/xxxxx/xxxxx.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
出现该错误的原因主要是ssl的问题,而且每次重启后都会出现这个报错,修改仓库根目录的.git/config,可以一劳永逸。
将其中的url后的https://github.com/username/xxxxx.git改为git@github.com:username/xxxxx.git

[remote "origin"]
	url = git@github.com:username/xxxxx.git
	fetch = +refs/heads/*:refs/remotes/origin/*

.gitignore

由于有些文件不想上传到远程仓库,但想在本地保留,则在.gitignore中添加对应文件地址,如:

result/
dataset/

对于已经上传又想加到.gitignore中的文件可以执行如下命令:

git rm -r --cached result
git rm -r --cached dataset

最后进行上传操作

结语:

1.git 中涉及的路径,包括 GitHub 的用户名仓库等等,最好使用英文,否则会有许多意想不到的bug。
2.通常情况下输入一些命令 git bash 没有反应是指很成功,但是有点时候也可能识别不出来(比如少空格 " " )。
3.万万不要在仓库里添加仓库,会乱套的!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值