💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## git基本操作 如果不是在同一个仓库下就使用git 需要初始化 git init ## git clone > 直接拉取远程仓库地址的代码到本地 > git clone (https ssh) ## git add > 提交代码到暂存区里 > git add . ## git status > 查看当前项目的文件状态 > git status ## git commit > 提交代码到本地记录 > git commit -m 'xxxx这次改动过的信息提示' > 提交完成后,如果没有出现**error** 或者是**fatal** ## git push > 提交本地记录到远程仓库 > git push origin 具体的分支名称 ## git remote > git remote -v 查看远程仓库 > git remote add origin(远程仓库地址的别名) [git@xxxx.com](mailto:git@xxxx.com)(具体的远程仓库地址) :添加新的仓库 > git remote remove origin: 移除别名叫origin的远程仓库 ## git pull > 更新并合并对应分支的代码 > git fetch (更新远程仓库的信息) > git merge (合并操作) > 在master分支上,合并后面提交的master的代码 git merge master(分支名称) > git pull origin master(分支名称) ## 本地项目(不受git管理的项目)同步远程项目仓库 > 1. 本地项目git初始化 `git init .` , 可以使用git的命令 > 2. 本地项目执行`git status`查看文件状态, > 3. `git add .` 把改动的文件都提交到暂存区里面去 > 4. `git commit -m 'xxx'`创建一个本地提交记录(文件改动提交到本地) > 5. `git push origin master` 出现错误, origin不知道哪个远程仓库 > 6. `git remote -v` 查看远程仓库地址, 发现没有 > 7. `git remote add origin` 具体ssh地址或者https地址 > 8. `git push origin master` 出现错误 **... git pull ....** > 9. `git pull origin master` 出现错误 fatal: refusing to merge unrelated histories > 10. `git pull origin master --allow-unrelated-histories` 强制更新代码 > 11. 同步本地的提交记录到远程仓库 `git push origin master` ## 分支(先clone,创建分支,删除文件夹,创建文件夹) > master就是分支,生产环境的分支(可以发布到线上) > develop或者是dev, 开发环境总的分支 > 切换并创建一个不存在的分支:`git checkout -b 02` 02分支不存在,所以要加上-b, b: branch > 切换分支: `git checkout 已经存在的分支名称` 已经存在一个远程仓库, 并且本地的需要提交的代码结构比较简单的情况, > 1. git clone 远程仓库 > 2. 克隆下来的仓库分支(master), 切换分支,不存在的分支要创建git checkout -b 分支名称; 如果分支存在, git checkout 已存在分支名称 > 3. 把需要提交的文件复制到这个克隆下来的仓库里面 > 4. git status 查看文件状态 > 5. git add . 提交到本地的暂存区 > 6. git commit -m 'xxx' 创建一个本地提交记录 > 7. git push origin 分支名称 ## git fetch > 本地更新远程分支信息 查看所有分支(包含远程分支信息) `git branch -a` ## git pull > git pull 更新代码: git pull origin 分支名称 > git pull合并代码: **建议不使用这种** > 合并代码的情况: > 现在在a分支, `git pull origin b`, 相当于在a分支更新b分支的代码下来,这样的操作就是合并操作, `a 分支合并b 分支代码` ## 合并分支 > 1. git pull origin 分支名称, 会扰乱我们的提交记录,不建议用这种 > 2. git merge 分支名称 ,它的作用就是合并代码, 如果想在master分支合并weizhiwei, `git checkout master` , `git merge weizhiwei` > 3. `git rebase 分支名称` , 如果你在**master**分支上, 想合并\*\*weizhiwei`**分支的代码,建议先切换到weizhiwei分支`git checkout \*\*weizhiwei`**,在**weizhiwei**分支基础上执行`git rebase master, 执行完rebase合并操作以后(有时候会有冲突, ...), weizhiwei的分支上是不是已经拥有了master分支最新的代码, git checkout master ,切换回master分支, 执行 `git merge weizhiwei`, 更新到远程分支就执行`git push origin master` 补充: 生成ssh-key命令: `ssh-keygen -t rsa -C "公司使用的邮箱"` ,ssh-key 保存的的文件`id_rsa.pub` > 情况一: 本地 是没有这个远程仓库项目的, 从远程仓库下载项目代码下来`git clone ssh(https)` , 默认情况是在`master` 分支;你现在的项目代码是最新的了,并且是拥有远程仓库里面所有的分支信息. 这个时候是不需要执行`git fetch` `git pull` > 情况二: 本地已经拥有了仓库, 在当前仓库下要更新别的同事的代码下来,如果你的分支和你的同事的分支是一样的, `git pull origin 分支名称`; 不一样的分支, 相当于合并别的分支代码到自己的分支代码上, `git rebase 同事的分支`, 有冲突解决冲突;一个宗旨: **把冲突放到自己的开发分支上面解决就好了**; > 情况三: 本地已经拥有了仓库, 但是是一个月前的代码, 你本地看不到你同事的分支(git branch -a 看到的分支信息是一个月前的分支信息), 前几天你的同事创建了一个新分支并且写好代码提交到远程仓库(gitlab gitee), 然后叫你继续在他的基础上写代码, 那现在要怎么做? 1. `git fetch`同步(更新)远程仓库最新的分支信息, (通过git branch -a可以看到最新的分支信息); git checkout 同事的分支, 同时执行一下 `git pull origin 同事分支` > 情况四: 本地已经拥有了仓库, 但是是一个月前的代码,前几天你的同事在它自己的分支写好代码提交到远程仓库(gitlab gitee), 你要在当前你自己的开发分支基础上,合并同事最新的分支代码. git branch -a查看一下远程分支有没有同事的分支, `git checkout 同事的分支` 更新同事分支上最新的代码 `git pull origin 同事分支`, 接下来要合并同事的代码到自己的分支上, `git checkout 自己的分支` , `git merge 同事的分支 || git rebase 同事的分支` ## 冲突(合并代码) > git merge : 出现冲突, > 1. 找到冲突的文件(CONFLIIT), 解决里面的冲突 > 2. `git add .` 和 `git commit -m 'xxxxx'` > git rebase : 出现冲突 > 3. 找到冲突的文件(CONFLIIT), 解决里面的冲突 > 4. `git add .` , 执行`git rebase --continue`, 没有出现特殊情况下,就已经解决完冲突了