git

git
BarbecueGIT
Git使用
查看git状态和后续git建议
1 | git status |
将untracked状态到staged状态
1 | git add |
将staged状态到untracked状态
1 | git restore --staged |
将所提交内容融入分支(unmodify)
1 | git commit -m " " |
“ “中是备注信息
查看所有分支
1 | git log --oneline --all |
1 | git log --oneline --all --graph |
查看分支
1 | git branch -v |
切换分支
1 | git checkout 主动方 |
合并分支
1 | git merge 被动方 |
将仓库的git拉下来修改后提交上去
1 | git pull origin master |
安装和配置git
1.安装
1 | sudo apt install git |
2. 检查配置
1 | git config --list |
3. 设置用户名称与邮件地址
每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改
1 | git config --global user.name "Barbecue" |
4. 配置默认文本编辑器
1 | git config --global core.editor vim |
5. 配置密钥
输入命令生成密钥
1 | ssh-keygen |
进入文件夹
1 | cd ~/.ssh/ |
找到公钥匙、私匙
1 | ll |
id_rsa
——私匙
id_rsa.pub
——公钥
复制公钥到git个人账号的ssh密钥中
1 | cat id_rsa.pub |
git命令快速使用
cd
(文件夹地址)
git init
(新建git文件夹)
git –version
(查看git版本)
git config –global user.name “(name)”
(开发者名字)
git config –global user.email “(email)”
(开发者email)
git config –list
(查看开发者信息)
git status
(查看当前状态)
git add .
(将档案加入索引)
git commit -m “修改的内容”
(将索引提交到档案库)
git log
(观察commit的历史记录)
git clone (拷贝地址)
(下载云端库)
git push origin master
(上传到云端库)
ssh-keygen -t rsa -C “2210016303@qq.com“
(生成ssh公钥)
清除git历史提交记录
解决Git提交次数过多,清除历史提交记录的方法有几种,这里提供一种常用的方法,通过创建一个新的孤儿分支(orphan branch),将当前的代码状态保存到这个新分支上,然后用这个新分支替换主分支,从而达到清除历史提交记录的目的。请按照以下步骤操作:
创建一个新的孤儿分支:
1
git checkout --orphan latest_branch
这一步会创建一个新的分支
latest_branch
,这个分支上不包含任何历史提交记录。添加所有文件到新分支:
1
git add -A
这一步会将你的项目中的所有文件添加到暂存区,准备进行提交。
提交更改到新分支:
1
git commit -am "commit message"
用一条提交信息替代之前的所有提交记录。
删除主分支(默认分支通常是
main
或master
,根据你的情况选择):1
git branch -D master
这一步会永久删除主分支。
将当前分支重命名为主分支:
1
git branch -m master
这一步将
latest_branch
重命名为master
。强制更新远程仓库:
1
git push -f origin master
这一步会将本地的变更强制推送到远程仓库,替换远程仓库的历史记录。
请注意,这种方法会彻底删除所有的历史提交记录,只保留当前的代码状态。在执行这些操作之前,建议备份你的仓库,以防万一需要恢复历史记录。
不保存分支的历史提交记录
一个分支想合并另外一个分支,但是不保存那个分支的历史提交记录,可以使用 git merge
命令的 --squash
选项。这个选项会将另一个分支的所有提交压缩成一个提交,并将其应用到当前分支,而不会保留原来分支的提交历史。
首先确保你在你想要合并的目标分支上,比如说,假设你想将
branch_to_merge
合并到当前分支:1
git checkout master
然后使用
git merge
命令并添加--squash
选项合并另一个分支,比如branch_to_merge
:1
git merge --squash develop
接着你需要提交这个新的合并提交:
1
git commit -m "docs(all): Merge develop without preserving history"