当前位置: 首页 > article >正文

随笔—git操作

1. 创建一个 GitHub 仓库

  • 登录到 GitHub。
  • 点击右上角的 “+” 按钮,然后选择 “New repository”。
  • 填写仓库名称和描述,选择是否公开,最后点击 “Create repository”。

2. 在本地初始化 Git 仓库(如果尚未初始化)

在你的工程目录中打开终端,执行:
git config --global user.name "zhiqianzheng"
git config --global user.email "774065267@qq.com"

git init

git add .

3. 添加远程仓库

将你刚创建的 GitHub 仓库添加为远程仓库,执行:

git remote add origin https://github.com/你的用户名/仓库名.git 

你的用户名仓库名 替换为实际信息。

b82be13e37794dc18dd2620af0383afe.png

 

git remote -v  #确认仓库是否设置好

要将远程的 main 分支清空并重新推送本地的 master 分支内容,可以按照以下步骤操作

d00d9ec5cdc949e8ba1ae1404ef589e1.png

4. 增删改查

当你想把本地的分之推送到远端仓库main仓库的时候,如果

如果你还没有提交过文件,可以使用以下命令:

git add .

git commit -m "Initial commit"

git status

git diff HEAD "文件名"  #查看某个文件在上一次commmit之后修改了哪些地方

208785afa0404589b0e8bfb4efefa4f8.png

 

git checkout – file    #舍弃对文件修改,让该文件恢复到上次提交时候的状态

9b4629eb0ae6425a838a8be00454f008.png

 git reset HEAD "文件名" 

git reset HEAD <file> 可以用来取消暂存(unstage)一个文件。其实就相当于撤销 git add <file>这个操作

7d07d71f0cdd4bae9ed6c9b1e5e9baaa.png

 

git branch -a查看所有分支

git branch "分支名"  #切换到某个现有本地分支

git checkout -b dev   #创建并切换到dev分支(等价于git branch dev 加 git checkout dev)

git merge    #git合并分支
当我们新建分支并做完工作之后,想要把分支提交至master,只需要切换到master仓库,并执行git merge 分支名就可以了。如我们在分支中新建了一个f.c和test.c的文件,然后在使用git checkout master切换到主分支master,再使用git merge dev将其合并


 

git reset --hard 50a327e4190eb90f17f1abfa836e3aa969355f23 #切换到指定的某次提交版本

git reflog查看所有提交过的log和哈希值,git reset --hard +哈希值,可以回到任意一个历史提交的版本

git push origin --delete ”远程分支名“   #删除远程某个分支

git branch -D “本地分支名”    #删除本地分支

5. 克隆与推送

git clone “云端仓库地址”   #从云端仓库拉代码在,clone时默认是把当前地址里面的所有分支全部clone下来,但是只有master会显示

git push -u origin master #推送本地git仓库到github云端仓库,第一次使用push的时候加上-u,以后可不加

9bea97747feb4fd9a0fd6d565264c36e.png

如果你使用的是主分支以外的分支,替换 master 为对应的分支名称。

6. 输入凭据

如果在推送的时候提示这种失败
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

这个错误提示表示你没有使用 SSH 密钥进行身份验证。你需要生成 SSH 密钥并将其添加到 GitHub 账户。请按照以下步骤操作:

1.生成 SSH 密钥: ssh-keygen -t rsa -b 4096 -C "774065267@qq.com" 按照提示操作,通常直接按回车即可使用默认路径。

2.添加 SSH 密钥到 ssh-agent

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_rsa

3.cat ~/.ssh/id_rsa.pub  #将结果复制下来

4.将公钥添加到 GitHub

  • 登录 GitHub。
  • 进入 Settings > SSH and GPG keys
  • 点击 New SSH key,将复制的公钥粘贴进去,给它起个名字,点击 Add SSH key

5.再次推送:git push -u origin master:main

b182b46b30cf476bbd363ce3abc6ed99.png

7fd6988782b44c97a950ab95a16f2771.png

 

git checkout --orphan temp_branch  # 创建一个新分支

  1. git commit --allow-empty -m "Clearing main branch"
    git push origin temp_branch:main --force  # 强制推送到远程的 main
    git checkout master  # 切换回 master

  2. 按照提示操作,通常直接按回车即可使用默认路径。

  3. 添加 SSH 密钥到 ssh-agent

    eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa

  4. 复制公钥

    cat ~/.ssh/id_rsa.pub

    将输出的内容复制。

  5. 将公钥添加到 GitHub

    • 登录 GitHub。
    • 进入 Settings > SSH and GPG keys
    • 点击 New SSH key,将复制的公钥粘贴进去,给它起个名字,点击 Add SSH key
  6. 再次推送: 现在再次尝试执行推送命令:

    git push -u origin master:main        


 

如果系统提示输入用户名和密码,输入你的 GitHub 用户名和密码(或访问令牌)。

完成后,你的工程应该就会出现在 GitHub 的仓库中。
 

1. 使用个人访问令牌(PAT)

  1. 创建个人访问令牌

    • 登录到你的 GitHub 账户。
    • 转到 Settings > Developer settings > Personal access tokens > Tokens (classic)
    • 点击 Generate new token,选择所需的权限(例如 repo 权限),然后生成令牌。
  2. 在推送时使用令牌

    • 当你被提示输入用户名时,输入你的 GitHub 用户名。
    • 当你被提示输入密码时,输入你生成的个人访问令牌。

 

 

推送成功后:

69743c76dd2940899d848a4887c4dc80.png

将本地zzq_wifi_app_develop推送到云端,云端分支同名

将本地master分之推到远端的main分支

 


http://www.kler.cn/news/366557.html

相关文章:

  • 用kali入侵 DarkHole_2测试
  • Redisson(二)SpringBoot集成Redisson
  • 2024-网鼎杯第二次模拟练习-web02
  • C#与C++交互开发系列(十):数组传递的几种形式
  • 【揭秘】图像算法工程师岗位如何进入?
  • ipguard与Ping32如何加密数据防止泄露?让企业信息更安全
  • 一位Go开发者的深度访谈:从进阶到实战,《Let’s Go Further!》如何开拓Go语言新世界
  • 如何利用 OCR 和文档处理,快速提高供应商管理效率 ?
  • Windows server 2003服务器的安装
  • 【创业】互联网行业30年发展史与风口,后双创时代杀出重围的独角兽们(追求极致,务实敢为)
  • 获取每个访客的第一条访问日志(获取网站的UV)
  • 【Linux】AlmaLinux 8.10软件兼容性测试
  • 【jvm】jvm对象都分配在堆上吗
  • 设计模式引入/设计模式
  • 使用Gitblit搭建Git服务器
  • ffmpeg环境
  • linux指令笔记
  • CSP-S 2024 游记
  • Java 图片加密解密实战:实现安全高效的文件加密工具20241022
  • springboot入门学习笔记
  • 深入剖析MySQL的索引机制及其选型
  • 【面试经典150】day 8
  • DHorse v1.6.0 发布,基于 k8s 的发布平台
  • Unity插件-Intense TPS 讲解
  • API网关的作用--为什么微服务需要一个API网关?
  • 串口COM清除输入缓存(这个对手动读取反馈有帮助)