git相关操作记录
一、github仓库创建以及拉取代码
1.配置ssh
点击头像

点击设置

点击SSH and GPG keys

新建SSH key

需要填写title和key值,点击添加即可

key值获取:
a. 本地创建ssh key
打开 PowerShell(或者按下 Windows + X 并选择 “Windows PowerShell”);

在 PowerShell 中输入以下命令来生成 SSH 密钥:
ssh-keygen -t rsa
输入您要保存密钥文件的路径和名称。例如:C:\Users\YourName.ssh\id_rsa。您可以选择保留默认名称,因为它已经被 SSH 所识别(id_rsa);
在弹出的窗口中输入密码,或者直接敲击回车键选择不设置密码;

这个时候会得到一个公共密钥(id_rsa.pub)和一个私有密钥(id_rsa)。

b. 将key 放在 gitlab上
cat .ssh/id_rsa.pub # 查看公共密钥

将打印出来的都复制下来,粘贴到key值


创建成功

2.创建git仓库
创建新的仓库,点击New




3.拉取仓库代码
打开git bash

创建新的文件夹存放代码,具体路径看个人习惯
pwd # 查看当前路径
cd c: #进入 c盘
mkdir test_project # 创建文件夹

cd test_project # 进入文件夹
echo "# test_project" >> README.md # 创建 readme文件
git init # 初始化一个新的Git 仓库
git add README.md # 将工作目录中的改动添加到暂存区
# git add . 添加所有文件
git commit -m "first commit" #将暂存区的修改记录为新的版本提交,-m 是添加备注
git branch -M main # 重命名当前仓库中的某个分支,使其新的名字为 main,从截图可看见当前分支是master,将其重命名为main
git remote add origin git@github.com:Tammi-Pioneer/test_project.git # 将远程仓库添加到本地 Git 仓库中
# 语法是git remote add <远程仓库别名> <远程仓库URL>
git push -u origin main # 将本地分支推送到远程仓库并建立追踪关系

刷新页面

用pycharm打开刚才的文件夹

二、git常规操作
1.设置邮箱和账号
配置全局用户信息,用于标识代码提交者
git config --global user.name "tammi"
git config --global user.email "your email"

2.拉取最新代码
远程代码获取与本地合并
git pull origin main

3.创建新分支
基于当前分支创建并切换到新分支
git checkout -b feature-branch

4.从主分支合并代码到新分支
确保新分支包含主分支最新代码
git fetch origin
git merge origin/main

5.提交代码
修改readme文件,修改内容后可以发现颜色已经改变

将修改添加到暂存区并提交到本地仓库
git add .\README.md
git commit -m "[MOD] 修改readme文件"
add 文件后发现有警告:
Git 在 Windows 系统下的换行符自动转换警告,属于正常现象
我点击右下角直接切换了。具体需看整体使用风格做选择。

使用pycharm的提交方式如下:
点击commit、查看并勾选修改的文件、添加提交注释、点击commit and push进行提交并推送

6.推送代码
首次推送需建立远程追踪关系
git push -u origin feature-branch

在上一步的pycharm操作中,如果只commit没有push

会发现有个绿色的小箭头,点击push

里面则是commit但未被push的内容,点击push推送

推送成功

7.查看日志
显示提交历史(按 q 退出)
git log --oneline --graph

也可以使用pycharm的git history

还可以筛选分支、提交人、日期等



8.将新分支代码合并到主分支
先切换回主分支再合并
git checkout main
git merge feature-branch

会发现有个绿色小箭头,需要推送到远程

三、解决冲突
1.修改代码前先拉取最新代码,以避免冲突
pull最新代码、合并主分支到当前分支。。

2.发生冲突的解决
1是代码少并且无关紧要,直接放弃本地代码
假如有人在分支修改了readme文件,第四行写的测试2

我本地分支第四行写的“测试3”



“测试3”就不见了。发现绿色箭头要push

2是文件少依次解决冲突文件,一定要确保别人的代码不会弄丢
test_project1增加了测试4并提交推送了

test_project这边没有拉取最新代码




先把远程修改的放到结果里面来

再把自己的放进来

再次推送

3是使用git stash储藏本地修改的代码
test_project1增加了测试6并提交推送了

我本地分支第四行写的“测试7”,提交并推送会发现有冲突

点击取消推送

先撤回commit的内容
git reset --soft HEAD~1 # 取消最近一次 commit,但保留所有文件修改和暂存状态

选择git stash

写好备注,创建stash

拉取最新代码


查看stash储藏列表

git stash pop # 恢复并删除储藏记录
需要解决冲突

再次push

这里也可以操作

git stash drop #可以丢弃当前冲突的储藏

四、本地代码丢失的找回方法
1是查看git history找分支上的提交记录

2是利用开发软件的local history找修改记录

这个操作可以恢复

