git简单使用

区域分类: 

        工作区(Working Directory):新建、修改的文件。(可理解为资源管理器里的文件)
        暂存区(Stage):修改完文件放入的区域。类似缓存区。
        本地仓库(Local Repo):本地保存的文件。包含项目的历史和数据。
        远程仓库(Remote Repo):如gitee、github等仓库。

文件状态
 

图片来源: https://www.bilibili.com/video/BV1HM411377j/?p=4&share_source=copy_web&vd_source=2ebc02228f3551959ef1845857cef6fc&t=39
git编辑图

git reset mixed:将本地仓库往前移,不动暂存区,工作区,可看到当前修改的文件。可以方便在提交最新版本后,返回前一个版本对照。

分支工作流:

Git Flow:
        主分支(main/master)
        开发分支(devrlop)
        功能分支(feature)
        发布分支(relase)
        热修复分支(hotfix)

GitHub Flow

提示:

        简化命令使用 -h
        完整命令使用 --help
        [ ]里面的命令是可省略的

git help -a 查看全部指令
使用git  -h来查看指令的使用方法,例如

$ git blame -h
usage: git blame [<options>] [<rev-opts>] [<rev>] [--] <file>
       git blame    -L            10,20         可省略--  text.txt
该指令表示查看第10-20行的文件信息  


一、本地仓库常用指令

1. 创建本地仓库

git init

2.配置用户名和邮箱

2.1 全局

git config --global user.name "yourname"
git conifg --global user.email "youremail"
git config --global credential.helper store        //存储用户和邮箱
git config --global --list        //查看配置

2.2 项目级

git config  user.name "yourname"
git conifg  user.email "youremail"
git config --list --local                       //查看配置

3.添加修改后的文件

git add

4.提交保存

git commit
git commit -m "提交注释"
git commit --amend 覆盖最新提交的注释

5.修改

5.1 修改已提交的注释

 git rebase -i HEAD^5         

        选择最近提交的记录,然后选一个修改。
        使用编辑器将pick修改成edit,保存退出 git commit --amend 修改提交注释, git rebase --continue合并修改。

 5.2 覆盖上一次提交

git commit --amend (若不修改注释加--no-edit)

6.查看暂存区文件状态

git status

7.查看已存放的文件

git ls-flies

8. 查看提交记录

git log
git reflog         //查看已删除的记录
git reset --hard <提交哈希值> //恢复删除的记录

9.回退版本

git restore                       //撤销工作区的修改
git restore --staged         //从暂存区撤销为修改后的工作区

git checkout                    //从暂存区恢复到工作区

git revert                         //回退仓库版本,产生新分支提交

git reset --soft HEAD           //回退仓库版本,保留工作区和暂存区文件(保留修改的)
git reset --hard HEAD          //回退仓库版本,清除工作区和暂存区文件(全更新)
git reset --mixed HEAD        //回退仓库版本,保留工作区,清除暂存区文件(清楚缓存)

HEAD格式可以是
      commitID:提交的id值
      HEAD^:上一个版本
      HEAD^^:上上个版本
      HEAD~1:指定的上1个版本
      HEAD~2:指定的上2个版本

10.移除文件

git rm -f index.js                    //从git仓库和工作区同时移除文件
git rm --cached index.js        //只从git仓库中移除文件

11.移动/重签名文件

git mv

12.比较文件

git diff                                          //比较工作区与暂存区的文件
git diff commitID                          //比较工作区与git仓库的文件
git diff --cached --commitID         //比较暂存区与git仓库的文件
git diff --commitID --commitID     //比较git仓库版本    

13.分支管理

git branch        //查看所以分支
git branch sub       //创建一个名为sub的分支
git branch -d        //删除分支
git switch        //切换分支
git checkout         //切换分支,恢复文件到工作区,检测特定提交
git merge        //合并分支 

二、连接远程仓库

HTTPS方式连接

HTTPS方式最简单,只需要输入登录账号密码。

# 直接在项目目录下bash运行下面指令

git clone https://gitcode.com/.../.git

若提示:

remote: <CH.00905401> HTTP Basic: Access denied.
remote: The password-based authentication of Git has been removed. Please use your personal access token instead of the password.

则在远程仓库创建个人访问令牌登录。

SSH方式连接

SSH 公钥管理 | GitCode 帮助文档

1.配置ssh密钥在本地电脑

ssh-keygen -t rsa -b 4096 

# 可选

# ssh-keygen -t rsa -b 4096  -C "your_email@example.com"

注:

Enter file in which to save the key:默认保存到(~/.ssh/id_rsa)里,可保存到指定文件下(E:\my_git\id_rsa)

可选加密。

id_rsa是私钥。

id_rsa.pub是公钥。

# 启用代理

ssh-agent -s

# 关闭代理

ssh-agent -k

# 添加密钥到ssh

ssh-add E:/my_git/id_rsa

# 查看是否添加成功

ssh-add -L

测试配置

ssh -vvv -T git@gitee.com -i E:\my_git\id_rsa

2.复制生成的key到远程库的ssh keys里

# 查看公钥内容
cat ~/.ssh/id_rsa.pub
# 显示的公钥示例(部分内容)
ssh-rsa AAAAB3NzaC1yc2E... user@hostname

3.下载

git clone
git clone -b 分支名 --single-branch

一键添加脚本

#!/bin/bash
# fix_gitcode_ssh.sh - gitcode SSH连接问题修复脚本

my_ras=".\gitcode_id_rsa"
CURRENT_DIR=$(pwd)
echo "=== gitcode SSH连接问题诊断与修复 ==="
echo ""

# 1. 检查密钥文件
echo "1. 检查SSH密钥文件..."
if [ ! -f "$my_ras" ]; then
    echo "   ❌ 未找到gitcode_id_rsa私钥文件"
    read -p "   是否生成新的gitcode密钥?(y/n): " choice
    read -p "   是否生成到当前目录,还是生成到默认地址(y/n): " choice2
	if [ "$choice2" = "y" ]; then
		$my_ras="~/.ssh/gitcode_id_rsa"
	fi
    if [ "$choice" = "y" ]; then
		read -p "   请输入你的用户名和邮箱(示例: git@gitcode.com): " ch_user
		if [ ! -f "$ch_user" ]; then
			ssh-keygen -t rsa -b 4096 -C "$ch_user" -f "$my_ras"
		else
			ssh-keygen -t rsa -b 4096 -C "$(git config user.email || echo 'your-email@gitcode.com')" -f "$my_ras"
		fi
    fi
else
    echo "   ✅ 找到gitcode_id_rsa私钥文件"
fi

# 2. 检查config配置
echo ""
echo "2. 检查SSH config配置..."
if grep -q "gitcode_id_rsa" ~/.ssh/config 2>/dev/null; then
    echo "   ✅ config文件中已配置gitcode"
    grep -A5 "gitcode_id_rsa" ~/.ssh/config
else
    echo "   ❌ config中未找到gitcode配置"
    echo "   添加以下配置到 ~/.ssh/config:"
    echo "   Host gitcode.com"
    echo "   	HostName gitcode.com"
    echo "   	User git"
    echo "   	IdentityFile ${CURRENT_DIR}gitcode_id_rsa"
	read -p "是否打开~/.ssh/config配置?(y/n): " choice
	if [ "$choice" = "y" ]; then
		vim ~/.ssh/config
		if grep -q "Host gitcode.com" ~/.ssh/config 2>/dev/null; then
			echo "   ✅ config文件中已配置gitcode"
		else
			echo "   ❌ config中未找到gitcode配置"
			echo "   请手动检测~/.ssh/config配置"
		fi
	fi
fi

# 3. 检查公钥状态
echo ""
echo "3. 检查公钥..."
if [ -f "$my_ras" ]; then
    echo "   公钥内容(前50字符):"
    # head -c 50 ~/.ssh/gitcode_id_rsa.pub
    head "$my_ras.pub"
    echo "..."
    echo ""
    echo "   请确保此公钥已添加到gitcode账户的SSH公钥设置中"
else
    echo "   ❌ 未找到公钥文件"
fi

# 4. 修复权限
echo ""
echo "4. 修复文件权限..."
chmod 700 ~/.ssh 2>/dev/null
chmod 600 ~/.ssh/config 2>/dev/null
chmod 600 "$my_ras" 2>/dev/null
echo "   ✅ 权限已修复"

# 5. 测试连接
echo ""
echo "5. 测试SSH连接..."
ssh -T git@gitcode.com

read -n 1

三、远程仓库的操作

1.git remote

2.git fetch                     从远程获取代码库

3.git pull                       下载远程代码并合并

4.git push                    上传代码并合并
   git push --force         强制覆盖远程仓库上已经存在的commit

5.git submodule           管理包含其他Git仓库的项目

撤回远程提交:

1.回退仓库版本
git reset --hard

2.强制提交覆盖
git push --force

 常见问题:

Q1.添加了.gitignore文件不起作用
A:原因是再为添加.gitignore的内容前,想要忽略的文件已经存到stage(cached)里了,所以要先删除cahce,使用 "git rm -r --cached ." 命令,重新 "git add ." ,然后提交。

更多运用参考:
Git - Reference
git (Setup and Config) - Git 中文开发手册 - 开发者手册 - 腾讯云开发者社区-腾讯云

大厂git分支管理规范:gitflow规范指南 - kevin_ying - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值