git 创建远程分支

# 创建本地分支
git checkout -b dev
# 建立本地到远端仓库的链接
git push --set-upstream origin dev

设置Git的user name和email:

$ git config --global user.name ""
$ git config --global user.email ""

生成SSH密钥过程:

# 查看是否已经有了ssh密钥:
cd ~/.ssh
# 生成密钥:
ssh-keygen -t rsa -C "xxx@icloud.com"
# 一路回车
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
# 最后得到了两个文件:id_rsa和id_rsa.pub

添加密钥到ssh:ssh-add 文件名需要之前输入密码。

在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。打开https://github.com/ ,登陆,然后添加ssh。

测试:ssh git@github.com

上传克隆全流程

# 设置全局姓名
$ git config--global user.name "姓名"
# 设置全局邮箱
$ git config --global user.email"邮箱"
# 项目git初始化
git init
# 查看git状态
git status
# 关联远程地址
git remote add origin https://gitee.com/passing92/allbs-cloud.git
# 拉取指定分支代码
git pull --rebase origin master
# 暂存所有本地代码
git add .
# 提交暂存代码至本地仓库
git commit -m '注释信息'
# 推送本地仓库变更至远程仓库指定分质
git push -u origin master -f
# 克隆指定库的代码
git clone https://gitee.com/passing92/allbs-cloud.git

单独对某个项目设置用户和邮箱信息

打开.git文件夹

修改文件config内容

image-20220830115510934

强制覆盖本地

git fetch --all 
git reset --hard origin/master 
git pull
# 合并指令
git fetch --all && git reset --hard origin/master && git pull
# 指定本地分支与远程分支
git branch --set-upstream-to=origin/master master

检出指定分支

git checkout -b dev origin/dev

打版本,tag的使用

# 创建了本地一个版本 V1.2 ,并且添加了附注信息 'release 1.2'
git tag -a V1.2 -m 'release 1.2'
# 查看tag
git tag 
# 显示附注信息,我们需要用 show 指令来查看
git show V1.2
# 同步到远程代码库
git push origin --tags

重新打版本

# 删除了本地 V1.2的版本
git tag -d V1.2
# 删除线上V1.2的版本
git push origin :refs/tags/V1.2
# 获取远程版本
git fetch origin tag V1.2

git 回滚某版本

git reset --hard commit_id(commit_id替换指定版本,可用 git log 指令查看)
git push origin HEAD --force #远程提交回退

git 本地分支完全替换另外的分支并强制推送远程服务器

# 查看所有分支
git branch
# 将Branch_xxx 分支内容完成替换当前所在的分支
git reset --hard Branch_xxxx
# 强制推送远程服务器
git push origin master --force

image`

git 创建远程分支

# 创建本地分支并切换
git checkout -b 分支名
# 查看分支
git branch -r
git checkout -b branch 'dev'
git push --set-upstream origin dev

image

git分支合并

# 进入要合并的分支(如开发分支合并到master,则进入master目录)
git checkout master
git pull

# 查看所有分支是否都pull下来了
git branch -a

# 使用merge合并开发分支
git merge 分支名

# 查看合并之后的状态
git status

# 有冲突的话,通过IDE解决冲突;

# 解决冲突之后,将冲突文件提交暂存区
git add 冲突文件

# 提交merge之后的结果
git commit

# 如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;

# 本地仓库代码提交远程仓库
git push

# git 将分支合并到分支,将master合并到分支的操作步骤是一样的。

git推送至不同的仓库

git remote add A A仓库地址
git remote add B B仓库地址

# 将代码推送至A仓库
git push -u A
# 将代码推送至B仓库
git push -u B

git删除提交过的某个文件的所有记录

将该文件从历史记录中移除:
git log --pretty=oneline --branches -- 文件路径

重写所有 commit,将该文件从 Git 历史中完全移除:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch 文件路径' -- --all

到这里,历史记录中已经没有该文件了。不过运行 filter-branch 产生的日志还是会对该文件有引用,所以还需要运行以下几条命令,把该文件的引用完全删除:
rm -Rf .git/refs/original
rm -Rf .git/logs/
git gc
git prune

这时文件夹已经小多了。然后push代码,需强制 push:
git push --force

git对已经提交过的文件/文件夹进行忽略

# 忽略文件夹
git rm -r --cached 文件夹

# 忽略文件
git rm --cached 文件

image

image