一给 发表于 2024-7-22 00:11:18

【Git】提交代码具体流程

1.git 三大分区


[*]工作区:开发职员当前正在开发的项目工作空间,是我们肉眼可见的。 Git系统不会管工作区中任何文件内容的修改,仅监控暂存区。
[*]暂存区:Git系统内部,管理开发职员项目中临时修改文件的区域,用于临时存放文件的改动,它会存放上一次开发职员 git add 添加之后的数据。 在后续继续向版本库提交更新代码时,git会比力暂存区与工作区间的差异,给予相干操纵提示。
[*]版本库:雷同仓库,存储很多配置信息、日志信息、以及文件各种修改后的终极版本信息。
2.Git提交、推送、拉取代码、合并分支具体流程


[*]检察工作区文件状态
git status
https://img-blog.csdnimg.cn/direct/552ea6a153d5419c86f392ea795a31bf.png

[*]添加文件到暂存区
git add <文件名>
git add ./* #添加所有文件到暂存区
https://img-blog.csdnimg.cn/direct/56223a290ac54df9ba3fb02645dfa499.png

[*]将暂存区的文件添加到版本库
git commit -m '提交注释信息'
https://img-blog.csdnimg.cn/direct/9379c73085614233a7a549358ea48c98.png

[*]推送本地分支的更新到远程主机
git push
https://img-blog.csdnimg.cn/direct/45ae243b13dc43d3bbcf7be24486590c.png

[*]切换分支
git checkout <远程分支名>
https://img-blog.csdnimg.cn/direct/db359d293a2b426c8a58ddfe4ed14752.png

[*]合并分支
git merge <源分支名>
https://img-blog.csdnimg.cn/direct/c9f1c322d52e4485b398f2f3d011ac26.png

[*]保存当前工作进度
利用情况:分支有改变时不提交不能进行切换分支操纵
该命令会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变动的堆栈中。
git stash
https://img-blog.csdnimg.cn/direct/b6f2cc8472b9497fa2ef0e274c9c3955.png

[*]远端拉取代码
git pull #是 git pull --merge 的缩写;将远程库的最新内容拉到本地,用户检查后决定是否合并
git pull --rebase #远程主机的最新内容拉取到本地后直接合并;可能会产生冲突需要手动解决
https://img-blog.csdnimg.cn/direct/b464da68d1b541afbf7ba358b13baa24.png

[*] 推送本地分支的更新到远程主机
https://img-blog.csdnimg.cn/direct/9557917106da48d09fb3f889449dd589.png
此时可以在主分支查询到从自己分支合并过来的提交纪录
[*] 切换回自己分支
https://img-blog.csdnimg.cn/direct/b298426f947e42c7a6a05274dbacead6.png
[*] 恢复最新的进度到工作区
git stash
pop https://img-blog.csdnimg.cn/direct/84a44eec0ca94a2193f532cede0239a2.png
3.问题总结

问题一、误提交:提交代码时遇到冲突,但冲突文件并不想提交【一般可以通过将文件添加到.gitignore恒久解决,但是由于我的文件具有线上版本,.gitignore文件不起作用】
https://img-blog.csdnimg.cn/direct/bcec5e67191f400c8d4e1f75d95c073f.png
解决办法:
git add .
git reset HEAD .

[*]【git add .】:添加所有文件到暂存区
[*]【git reset HEAD .】:将此次修改的所有文件退回到工作区
4.git push
增补知识


[*]将本地分支的更新推送到远程主机
git push
<远程主机名> <本地分支名>:<远程分支名> # :前后不可以有空格git push
origin dev-lwq:master #将本地的dev-lwq分支推送到origin主机的master分支
[*]省略远程分支名:
(1)本地与远程存在分支名重复情况,此时可以省略(2)若远程分支不存在,若省略则会新建一个与本地分支同名的远程分支
git push
<远程主机名> <本地分支名>git push
origin dev-lwq #将本地的dev-lwq分支推送到origin主机的dev-lwq分支,若origin主机不存在dev-lwq分支则会新建
[*]省略本地分支名:删除指定的远程分支
git push
<远程主机名> :<远程分支名>git push
origin :master #删除origin主机的master分支git push
origin --delete master#等同于上面命令
[*]仅保留远程主机名:当前分支与远程分支存在追踪关系
git push
<远程主机名>git push
origin #将当前分支推动到origin主机的对应分支git push
#省略远程主机名:当前分支只有一个追踪分支
[*]当前分支与多个主机存在追踪关系,通过以下命令可以指定一个默认主机
git push
-u <远程主机名> <本地分支名>git push
-u origin master #master分支推送到origin主机且设置origin为默认主机
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Git】提交代码具体流程