程序员社区

Git 项目中常用操作总结

文章目录

        • 1. 基本配置
        • 2. 配置ssh key
        • 3. 拉取代码
        • 4. 查看和新建分支
        • 5. 添加到暂存区
        • 6. 撤销修改的代码
        • 7. 提交到暂存区
        • 8. 提交代码到远程仓库
        • 9. 合并其他同事提交的代码
        • 10. 储藏修改
        • 11. 代码冲突问题
        • 12. git fetch 和 git pull的区别

1. 基本配置

git config --global user.name guohengheng23677

git config --global user.email 23677@163.com

2. 配置ssh key

cd ~/.ssh

ssh-keygen -t rsa -C "23677@163.com" 连续三次enter生成ssh key

cat id_rsa.pub

在这里插入图片描述

3. 拉取代码

git clone [url] 拉取代码

在这里插入图片描述

4. 查看和新建分支

git branch 查看本地的所有分支

git branch [branch-name] 新建一个分支,但是仍然停留在当前分支

git checkout [branch-name] 切换分支

在这里插入图片描述

5. 添加到暂存区

git add [file1] [file2] 添加到指定文件到暂存区

git add . 添加当前目录的所有文件到暂存区

git status 查看状态

6. 撤销修改的代码

git checkout --[文件名]  修改代码后撤销修改

git reset HEAD [文件名] ,git checkout --[文件名]  添加到暂存区后撤销修改

对于没提交到暂存区并且已经修改的代码,想要撤销修改:

在这里插入图片描述

对于提交到暂存区并且已经修改的代码,想要撤销修改:

在这里插入图片描述

7. 提交到暂存区

git commit -m [message] 提交暂存区到仓库区

git log 查看日志

在这里插入图片描述

8. 提交代码到远程仓库

提交完代码后上传到服务器:

git push origin [local-branch]:[remote-branch] 上传本地指定分支到远程仓库,其中remote-branch可以省略

在这里插入图片描述

可以看到远程服务器(github,ghh1221/community-springboot)多了一个分支:

在这里插入图片描述

9. 合并其他同事提交的代码

将代码提交到服务器后,服务器有其他同事更新代码后如何合并到本地分支呢?

git checkout master 切换到主线分支

git pull origin master 取回远程仓库的变化,并与本地分支合并

git checkout knowledge-doc-ghh 切换到个人分支

git merge master 合并master分支代码

git push origin knowledge-doc-ghh 再次推送个人分支代码

① 远程服务器中,其他同事添加一个haha文件:

在这里插入图片描述
我们在自己的个人knowledge-doc-ghh分支想将其他同事的修改的代码合并过来,此时需要切换到master分支,将服务器master分支的最新代码拉取过来,然后切换到knowledge-doc-ghh分支,再合并master分支的代码,合并完成后将个人分支的代码推动到远程仓库

在这里插入图片描述

② 执行上述操作后,本地仓库中多了一个haha文件,说明已经将其他同事的代码合并过来了:

在这里插入图片描述

10. 储藏修改

git stash 储藏当前修改的内容

git stash list 查看储藏内容

git stash pop 恢复储藏内容

场景:假如我们在t1分支对代码进行了修改,但是又不想commit,此时临时有任取需要到t2分支该代码,但是没办法切换到t2分支,就可以先将t1分支的代码储存一下,然后切换到t2分支修改代码,修改完成后回到t1分支,然后将之前储存的内容pop出来继续操作。

① 假如我们在knowledge-doc-ghh分支对代码进行了修改,但是又不想commit,此时临时有任取需要到t2分支该代码,但是没办法切换到t2分支
在这里插入图片描述
② 就可以先将t1分支的代码储存一下,然后切换到t2分支修改代码,修改完成后回到t1分支,然后将之前储存的内容pop出来继续操作。
在这里插入图片描述

11. 代码冲突问题

个人分支合并master分支的代码步骤:

git checkout master 切换到master分支

git pull origin master 更新本地电脑master最新代码

git checkout 个人分支 (切回到个人分支)

git merge master (将master分支的最新代码合并到个人分支)

如果有冲突:CONFLICT(content) :Merge conflict xxx,这种场景代码冲突,解决方法如下:

直接在编辑器中修改代码-手动修改

git add 冲突文件

git commit -m  “ log xxx"(提交代码到本地)

git push origin 个人分支

场景:创建两个分支hengheng和jainghui,切换到hegnheng分支,在hengheng分支下修改haha文件并提交到本地仓库,再将hengheng分支修改的代码合并到master分支,然后切换到jiagnhui分支,在jianghui分支下也修改了haha文件并提交到本地仓库,此时将jianghui分支修改的代码合并到master分支时出现了代码冲突问题,手动打开haha文件并解决冲突,解决后将haha文件提交到本地和远程仓库即可。
① 在hengheng分支下修改haha文件并提交到本地仓库,再将hengheng分支修改的代码合并到master分支
在这里插入图片描述
② 在jianghui分支下也修改了haha文件并提交到本地仓库,此时将jianghui分支修改的代码合并到master分支时出现了代码冲突问题
在这里插入图片描述

③ 出现冲突的文件代码:
在这里插入图片描述
在这里插入图片描述
④ 手动修改完成后,保留hengheng分支的,提交haha文件到远程服务器的个人分支
在这里插入图片描述

12. git fetch 和 git pull的区别

① git fetch:

git fetch origin master:tmp 
//在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff tmp 
//来比较本地代码与刚刚从远程下载下来的代码的区别
git merge tmp
//合并temp分支到本地的master分支
git branch -d temp
//如果不想保留temp分支 可以用这步删除

② git pull :

git pull <远程主机名> <远程分支名>:<本地分支名>
//取回远程主机某个分支的更新,再与本地的指定分支合并。

git fetch是从远程获取最新版本到本地,但不会自动merge。
而git pull则是会获取所有远程索引并合并到本地分支中来。效果相同时git pull将更为快捷。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Git 项目中常用操作总结

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区