一、写在前面
(由于考虑到公司业务和代码安全性问题,所有内容已脱敏)
二、问题场景
最近,在实习中经常用到 git
,现记录一些常用的命令以及常见的问题。
三、场景重现
场景1:
mentor给你个代码仓库地址: https://github.com/xxxx/test1.git
,让你解决一个需求,所以你现在需要将远程代码库的代码拉下来。
# git clone 仓库地址
git clone https://github.com/xxxx/test1.git
场景2:
mentor又给你个代码仓库地址: https://github.com/xxxx/test2.git
,让你解决一个需求,所以你现在需要将某个分支 feature/dev/server
远程代码库的代码拉下来。
# git clone -b 分支名 仓库地址
git clone -b feature/dev/server https://github.com/xxxx/test1.git
克隆某分支到本地目录
场景3:
mentor又双给你个代码仓库地址: https://github.com/xxxx/test3.git
,让你解决一个需求,所以你现在需要将某个分支 feature/dev/server
远程代码库的代码拉下来,但是代码库迭代次数比较多。
# git clone -b 分支名 --depth=1 仓库地址
git clone -b feature/dev/server --depth=1 https://github.com/xxxx/test1.git
–depth=1:只克隆下包含最近一次commit的一个分支,这样这个项目文件就不会很大
场景4:
mentor又双双叒给你个一个分支: origin/server
,给你个新需求,让你一起做,但是你切不过去。
git status # 用于查看在你上次提交之后是否有对文件进行再次修改。 可以移除修改或将修改移到暂存区中
git branch # 查看本地当前所在分支,并且在当前分支前面加“*”号标记
# git branch --track branch_name: 如果远程新建了一个分支,本地没有该分支,这时本地会新建一个分支名叫 branch_name 自动跟踪远程的同名分支 branch_name
git branch --track origin/server
git fetch --all # 从远程拉取最新的代码 不merge
git pull --all # 从远程拉取最新的代码 自动 merge
场景5:
mentor又双双叒叕给你个一个分支: origin/server
,给你个新需求,但是这个需求是和另一个同事同时 coding
,当你 commit
并且 push
时,你发现两个分支冲突了。所以,你的mentor告诉你,每次代码提交前需要:
git fetch --all
git pull --all # 自动 merge 适用于一人开发一个板块的情况 慎用
三、自我反思
- 代码提交之前一定要
pull
,这个老忘,然后编译器就提示我需要合并分支。 - 还有一次自己回滚自己的代码,然后再提交,产生了自己和自己的代码冲突。
四、写在后面
欢迎关注,实现期间会经常发一些工作中遇到的问题。
欢迎随时留言讨论,与君共勉,知无不答!