Git的安装及其配置
下载
通过淘宝镜像:
下载
进行安装,因为会自动配置环境变量,所以不需要手动去添加
Git Bash:Linux shell
Git CMD: Windows shell
配置
git config -l 查看当前配置
配置用户设置:
文件夹 - Git\et
设置
git config --global user.name "" #名称 git config --global user.email "" #邮箱
建立SSH 公钥
ssh-keygen -t rsa 生成公钥
公钥注册到码云
项目创建
本地仓库搭建
当前目录建立一个git代码库 $ git init
克隆远程仓库
# 通过URL 克隆 $ git clone [url]
成功克隆项目
文件的四种状态
1.untacked:未跟踪,不参与版本控制 通过命令 git add 状态变为staged
2.unmodify:文件已经入库,且并未修改 被修改则成为modifild
使用git rm 移出版本库 成为 untacked文件
3.modifiled:文件已修改,通国git add 进入暂存区 staged 状态
使用 git checkout 丢弃修改 返回unmodify状态
4.staged:暂存状态 执行 git commit 将修改同步到库中 文件变为unmodify状态
执行 git reset HEAD filename 取消暂存,文件状态为modified
get status 查询当前文件状态
get add . 跟踪文件状态,添加所有文件到暂存区
git commit -m "提交信息" 添加到本地仓库
.gitignore文件下 忽略文件
# 忽略 `*.a` 文件 *.a # 忽略 `*.A` 文件,但 `somefile.A` 除外. *.A !somefile.A # 忽略 `*.b` 和 `*.B` 文件 *.[bB] # 忽略 `*.c` 和 `*.C` 文件,但 `somefile.C` 除外. *.[cC] !somefile.C # 只忽略 `somepath/` 目录(包括该目录下所有文件),但不忽略 `somepath` 文件 somepath/ # 只忽略 `somepath/` 一级子目录下 `*.txt`,但不忽略 `somepath/sub/*.txt` 文件 somepath/*.txt # 忽略 `somepath` 文件和 `somepath` 目录 somepath # 只忽略 `somepath` 文件,但不忽略 `somepath/` 目录 somepath !somepath/ # 只忽略当前目录下的 `somepath` 文件和目录,但不忽略子目录的 `somepath` /somepath
推送到远程仓库
git push origin master 将改动提交到远程仓库 master分支
git push
添加到暂存区-> commit 提交到本地仓库 -> git push到远程仓库
分支
分支常用操作
查看本地分支 git branch
查看远程分支 git branch -r
新建分支 git branch xx
新建分支并切换到该分支 git checkout -b xx
切换回主分支:git checkout master
再把新建的分支删掉:git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin
更新与合并
要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
合并指定分支到当前分支 git merge [branch]
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add
在合并改动之前,你可以使用如下命令预览差异:
git diff
替换本地改动
可以使用如下命令替换掉本地改动:
git checkout --
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
完整流程
2023/5/20 第三次整理回忆
可以直接在远程创建好仓库,然后通过git clone 克隆下来,再将.git文件放到我们的项目文件夹下,这样的话就形成了对远程仓库的关联了,省去了
git init git remote add git https://tmp/xx.git # add git "git"是远程仓库名 /tmp/xx.git是远程仓库的地址,应该为url地址 使用这个命令会将当前目录的仓库和本地仓库形成关联
然后是推送
# 前面已经初始化了仓库,且添加了远程地址 #将当前目录的内容都添加到暂存态 git add . # 提交到本地仓库 状态由暂存到入库态,也就是从修改->暂存->未修改 git commit -m "这是一个提交" #这是第一次推送需要做的事情,更改推送的分支地址 # -u指定本地指定的分支和远程分支的关联 因为我们前面的仓库名为git , 因此 -u先填git , 然后第一个master是本地的分支名称 第二个master是远程的分支名称 # 一般来说,码云和github创建的仓库的默认名称是 origin 因此这个命令应该是 git push -u origin master master git push -u git master master #这是第二次推送,因为前面已经用-u参数规定好了关联的远程主机名git的分支地址,因此直接推送就好 git push origin master # 忽略了远程分支名,因为本地还能创建多分支,且在bash中也不知道你需要推哪个分支的内容到,比如我关联了分支a1->a,master->main ,那么我本地的a1分钟想推送,就得用git push origin a1 这样a1的本地分支的commit内容会推送到远程仓库a
拉取远程仓库的代码到本地
# git pull 远程主机名 远程分支名:本地分支名 -f 可以强制拉取,有冲突会直接无视,采用远程的 git pull git master:master # 只要下面这个也行,因为已经关联好了本地的分支与远程分支了,这边的原理和上面的推送类似,已经关联好了远程主机名和远程分支与本地分支的关系,指定远程主机名与远程分支的名称即可 git pull git master # 注意第二个git是远程主机的名,默认是origin # 默认是合并 如果要变基价参数 --rebase
第一次使用
-
git init //初始化仓库
-
git add * //添加文件到本地仓库
-
git commit -m "first commit" //添加文件描述信息
-
git remote add origin + SHH地址 //链接远程仓库,创建主分支
-
git pull origin master // merge:拉取最新的仓库状态
-
git push -u origin master //推送到远程仓库
第一次绑定了分支后,后面直接用Git pull就行 不需要指定分支了。
git pull --rebase origin master //rebase:变基,将父节点进行的分支节点先逐步进行合并,在与本地分支错开的节点的远程分支上的所有提交的节点都得处理一次,然后自己在公共祖先的节点后提交的本地节点,会放到远程的最新节点后合并,形成单条的分支,适用于其他分支,减少merge合并的各种跳线,在其他分支可以使用,用到主分支的话需要保持尽量在最新节点,不然推送要处理很多次的冲突,比较麻烦。
git push -u origin master
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY