1.初始化本地仓库
git init
2.首先关联远程仓库
git remote add origin 仓库http地址
3.拉去远程想要拉取的分支(一般 git pull origin master)
4.查看当前本地分支分支(git branch)显示本地分支为master分支
5.从远程仓库分支上拉取代码到本地分支(拉取其他分支执行下面操作,或者直接在master分支上创建一个新的本地分支: git checkout -b 分支名)
git fetch orign 远程分支名:本地分支名 (当远程分支名和本地分支名一样的时候, 使用git push 后按提示操作,会自动将本地分支关联到远程分支)
4.切换到新建的本地分支
git checkout 本地分支名
5.在当前分支上新建一个新的本地分支
git checkout -b 新建的本地分支名
6.切换到本地分支后,开始开发代码然后提交到本地仓库
git add .
git commit -m 'feat: 开发代码'
git push
7.开发中遇到需要切换到别的分支临时修改代码时候,可以将本地代码进行缓存
第一种情况:(只会缓存并插入最近的一次提交)
缓存
git stash
插入
git stash pop
第二种:(查看缓存后插入)
缓存
git stash save -m 'fix: 我的第三次缓存'
查看
git stash list
插入(vscode中需要对大括号进行转义)
git stash pop @stash`{3`}
这样我们可以从缓存中提取内容并且插入到任何想要插入的分支中
/** 插入点**/
当我们多人开发时候,要将我们自己的分支合并到dev上,那么我们必须先合并dev分支,后将自己远程分支合并到dev,分支,防止自己分支代码覆盖dev分支代码
8.合并分支并解决冲突
想要从远程拉取分支并在本地合并代码(最好拿本地的代码互相合并)
1.拉取想要合并的远程分支
git fetch origin 远程合并分支名:新的本地分支名
2.现在新的本地分支已经建立,从你当前的分支直接合并本地的新建的本地分支
git merge 新的本地分支
3.查看冲突
git status
4.查看冲突文件搜索<<<尖括号来解决冲突
之后执行git add .
git commit -m 'fix:解决冲突'
git push
提交结束
5.当我们不想要当前的合并操作,可以执行git merge --abort 来取消当前合并操作
9.突然思路断了,还有哪个git操作来着,下次补充
10.想起来了,当我们发现自己git commit 错误代码到本地仓库,甚至git push 到了远程仓库分支
那么哦我们需要:
第一种: git log (查看提交记录id)选择你提交信息的下一个id
git reset --soft 'id' (这个操作会会退提交到本地,错误代码还在)
第二种: git log
git reset --hard 'id' (这个操作会将错误代码,全部清除,请优先选第一种,因为第一种可以手动点击全部放弃)
最后统一修改后,提交本地commit或者推到远程push
可以使用git push -f 强制推送到远程
当我们想要将远程分支合并到本地分支的时候, 最好不要直接git pull 因为可能会发生拉取到别的分支代码,
因此最好要指定分支名进行本地更新 git pull origin 分支名字
补充: 当我们发现自己的分支合并到线上test有冲突,但是我们有无法直接拉去test,不可以直接push 线上test的时候,我们可以重test上建立一个本地分支,合并自己分支并解决冲突后,用这个新的本地分支去合并test就不会有冲突了
补充2: 当我们使用git fetch origin 分枝名到本地,并且这个分支是别人的分枝,我本地发生了更新,但是别人也更新了远程分枝,那么我们可以使用 git pull --rebase origin <branch-name> (执行拉取远程分枝并合并到本地)最后git push 提交到远程
//特殊情况:当本地分支存在修改&&远程分支被别人更新掉了。需要配置合并方式 git config pull.rebase false(代表每次拉取使用合并,保留所有提交历史) 再执行git pull origin 分支
当我们发现远程分枝跟本地分枝有冲突时候,但是本地分枝又将其他分枝代码git merge 合并过来了,既不能直接git pull 合并,又不能直接git push, 我们就需要,先更新本地分枝,git pull origin 分枝名 --rebase ,再解决冲突,后提交
git pull origin feature/ldb-portal-modal --no-rebase git push