可参考文章lists:
1.本地代码上传到`github`
在本地的项目工程目录下,按住`shift`,鼠标右键,`git bash here`,然后依次执行命令:
* git init # 工作空间创建.git文件夹(默认隐藏了该文件夹)
* git add . # 添加到暂存区
* git commit -m "注释"
* git remote add origin http://xxxxxxxxx.git # 本地仓库和远程github关联
* git pull --rebase origin main # 远程有readme.md,拉一下
* git push -u origin main # 代码合并
2. 将本地`git init`的时候默认分支修改为main
* git --version 查看版本
* git config --global init.defaultBranch main git在2.28.0上,重新设置git默认分支为main
版本控制分类
1. 本地版本控制
记录每次文件更新,对每个版本做一个快照,或是记录补丁文件,适合个人用,如
RCS
2. 集中版本控制
所有版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
单一服务器— 单点故障问题
用户本地只有以前同步的版本
SVN
、CVS
、VSS
3. 分布式版本控制
每个用户都拥有全部的代码——安全隐患
每个用户本地全都同步有所有版本信息仓库——占用本地存储空间
基础配置
首先配置用户名和邮箱 全局变量path
git config --global usernane ***
git config --global email ***
查看当**前登录用户**(global)config
git config --global --list
或 `C:\Users\username\.gitconfig`
查看**系统**config
git config --system --list
或 `Git\etc\gitconfig`
工作区域
add
– 缓存区
commit
– 本地仓库
push
– 远程仓库
项目搭建常用命令
git init # 在当前目录新建一个Git代码库
git add . # . 添加全部文件到暂存区
git commit -m "commit message" # 提交暂存区中的内容到本地仓库 -m 提交消息
git clone [url] # 克隆远程仓库
`git clone https://github.com/xia-mu/xia-mu.github.io.git`
文件操作
查看文件操作
git status [filename] # 指定文件
git status # 所有文件
忽略文件
主目录下建立
.gitignore
文件
Github/Gittee 免密登录
本机绑定SSH公钥
ssh-keygen
ssh-keygen -t rsa
`[-t dsa | ecdsa | ed25519 | rsa | rsa1] 加密算法`
默认存至`C:/Users/username/.ssh/`
分支 Branch
多分支并行执行 — 多个版本 — 代码不会冲突
需合并分支
(调用时),会引起冲突 — 修改冲突文件,重新提交主分支用来发布新版本,一般在新建的分支上工作
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 新建一个分支,指向指定commit
$ git branch [branch] [commit]
# 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch]
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]
# 切换到上一个分支
$ git checkout -
# 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 选择一个commit,合并进当前分支
$ git cherry-pick [commit]
# 删除本地分支
$ git branch -d [branch-name]
$ git branch -D [branch-name] # 强制删除
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]