今天我们来回顾一下git操作

116 阅读4分钟
    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