git ------ 基本操作
安装git https://git-scm.com/downloads
创建密钥
cd ~/.ssh/
~是一个目录,比如我的电脑是/c/Users/win10
如果提示 “ No such file or directory”,你可以手动的创建一个 .ssh文件夹即可
mkdir ~/.ssh
配置global
git config --global user.name "椰子" git config --global user.email "995852922@qq.com"
生成key
ssh-keygen -t rsa -C "995852922@qq.com"
生成两个文件:id_rsa和id_rsa.pub
把id_rsa.pub里的内容粘贴到gitlab密钥中
不要移动.ssh文件夹
常用命令
- 克隆(下载)仓库: git clone 项目地址
- 将文件推送至缓存空间:git add 文件路径
- 提交(上传)项目至本地仓库: git commit
- 远端仓库分支合并到本地当前分支(产生多余的 Merge branch 节点): git pull
- 远程仓库分支合并到本地当前分支(不产生 Merge branch 节点):git pull --rebase
- 远端分支(master)合并到当前分支:git pull origin master
- 合并本地分支(branch_name)到当前分支,会把本地分支节点都带到当前分支:git merge branch_name
- 推送本地分支至远端仓库: git push
- 检出分支(创建和切换分支): git checkout -b branch_name
- 查看本地分支: git branch
- 查看远程分支: git branch -a 如果在网页创建了一个分支C,之后本地没有 git pull任何一个分支,输入这个命令是打印不出分支C
- 查看状态:git status
- 查看 commit 记录:git log,输入 q 退出log
- 在当前路径创建仓库:git init
- 查看远程git地址:git remote -v
- 查看当前分支的版本历史:git log
- 删除远端分支:git push origin --delete branch_name
- 删除本地分分支:git branch -d branch_name
- 拉取远端分支到本地:git checkout 远端分支名
常用操作:
回退到某个版本
先看一下版本历史:
git log
回退到上个版本:
git reset --hard HEAD^
回退到某个版本
git reset --hard adf12(commit id,可以不写全)
放弃修改,从本地仓库还原此版本:
git reset --hard
下载仓库
如果本地是空白的情况下,需要先执行如下指令,在本地创建 iogateway 仓库(仓库放在 iogateway文件夹内)和主分支( master),然后把远端主分支最新的版本内容下载到本地主分支
git clone ssh://git@59.110.19.162:22/gateway/iogateway.git
或者
git clone git@codeup.aliyun.com:5efaafefebe48b2dfc27b637/remo-camera/SSC35X_SDK.git
执行完 git clone 后,origin 的值就是 ssh://git@59.110.19.162:22/gateway/iogateway.git
可以用如下语句查看别名以及对应远程库的路径
git remote -v
如果本地没有远端某个分支:执行 git checkout 远端分支名,本地就会创建同名分支,并且把远端分支的内容拷贝到本地同名分支
上传修改
把文件夹“Proj_1 - 2018071001”提交到本地缓冲区(暂存区,staged),再在把文件夹提交到本地仓库,其中"code"表示文件夹及内部文件的一个信息(属性)
git add Proj_1\ -\ 2018071001 git commit -m "code"
为什么Git添加文件需要add
,commit
两步呢?因为commit
可以一次提交很多文件,所以你可以多次add
不同的文件
commit 之后,使用命令gitk可查看当前分支状况
$ gitk
给远端的参考地址取个名字(origin),然后用名字代替地址进行 push 操作
$ git remote add origin ssh://git@59.110.19.162:2222/gateway/iogateway.git
"ssh://"可以不用加 $ git push -u origin master //第一次push要加-u 把本地master推送到origin的master
$ git push -u origin chenjinhe:chenjinhe //把本地chenjinhe分支(冒号前)推送到origin的chenjinhe分支(冒号后,没有分支 -则创建)
删除文件/文件夹
$ git rm -r 文件夹或文件名 $ git commit -m "说明" $ git push
fatal: refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2017-07-10 电池开关
2017-07-10 编程技巧 - malloc()与free() ------ malloc申请二位数组方法