git 进一步的操作

1.检出代码

    git clone https://usrname@127.0.0.1:8443/r/ifp/mnt.git   (master分支)

2.检出其他分支(DEV开发)

    git checkout  -b dev origin/dev

3.查看工作空间修改状态

    git status 

    3.1针对存在的文件进行修改

        ModifyFilesStatus

    3.2 新增加的文件

        NewFiles

4.将准备提交的文件添加到提交暂存区

    git add  filePath (准备添加某一个文件)

    git add  .            (本地本项目所修改的文件全部添加)

4.1准备提交的文件状态

    readyToCommitFiles

4.1.1new file : 新创建的文件

    4.1.2 modified :修改的文件

    4.2 修改的文件快速取消修改,重置为未修改的状态

    4.2.1 git checkout -- filePath  (单个文件回退)

    4.2.2 git checkout  (所有修改的文件回退)

5. 提交代码到本地仓库

    5.1 git commit -m  commitRemark            直接提交时做的提交备注

    5.2 git commit--amend commitRemark       追加最后一次commit的提交备注

    5.3                                                               修改远程某一次的提交备注

6.提交代码到远程

    git push 

7.代码处于4.1状态,但是有些错误要修改

    git reset HEAD  (将所有此状态的文件恢复到工作区可继续修改)

    git reset HEAD filePath(指定某一文件恢复到工作区进行修改)

8.开发一部分内容后突然要改另一个内容,此时需要保存本地修改

    8.1新建一个本地仓库/工作空间,两边开发互不影响代码提交后可能要解决冲突(耗费时间长,不推荐;但是版本管理者可以随时合并代码)

    8.2 将代码保存到快照暂存区

        8.2.1    git stash save saveRemark  (针对修改的文件进行快照暂存,可能会出现newFiles丢失的情况)

        8.2.2    git add . ;git  stash save saveRemark(将本地所有改动过内容进行快照暂存) 

    8.3   查看快照暂存列表

        git stash list

        gitstashlist

    8.4   使用某一个快照暂存

        8.4.1 快速使用列表中的第一个暂存并在快照暂存区删除掉这个暂存

            git stash pop

        8.4.2  使用某一个暂存(并不会在快照暂存区删除,可多次重复利用)

            git stash  apply stash@{stashIndex}   /* 0代表第一个暂存,以list的形式进行保存,也以list的形式使用 */

    8.5 删除不用/过时的快照暂存

        git  stash drop stash@{stashIndex}   

    8.6 查看某个快照暂存具体修改内容

        git stash show -p stash@{stashIndex}

9.代码合并()

    9.1 git cherry-pick commitId 将一个commit包含的内容挑拣到当前的分支上

        如果出现冲突(冲突的文件可以按此寻找<<<<<<<

                                                                       此为原内容

                                                                        ==== 

                                                                     此为挑拣内容

                                                                         >>>>>>>),

                则需要解决冲突;如果不能直接解决冲突,需要重试的可以执行9.2

    9.2 取消cherry-pick

        git cherry-pick --abort 取消当前的cherry-pick

    9.3 冲突解决完成,继续进行

        git cherry-pick --continue 进入vim 编辑器,备注解决冲突内容,方便意会

10 git merge 命令(参考cherry-pick,类似,作者不常用)

                                                                                    [    针对分支的操作     ]

11.分支(Branch)

    11.1 查看本地分支

        git branch 

        gitbranch

        本地共3个分支,且当前分支处于dev分支上

    11.2 查看本地分支与远程分支的关联情况

        git branch -vv

        git branch -vv

        当前共有四个分支,且每个分支都追踪到了远程(origin)对应的分支名称上

    11.3 本地创建分支

        git branch newBranchName     /* 以当前分支为基准创建一个新分支,但不关联任何远程分支,也不切换到创建的分支上 */

        git checkout -b newBranchName   /* 以当前所处分支为基准创建并切换到新分支上,但不关联任何远程分支 */

        git checkout -b localBranchName origin/originBranchName   /* 在本地创建分支并关联远程originBranchName分支 */

    11.4 本地删除某个分支

        git branch -d 

        git branch -D    /* 强制删除某个分支 */

    11.5 创建远程分支

        git push origin originBranchName                                /* 直接在远程创建一个分支 */

        git push origin originBranchName : local                     /* 以本地分支(local)为基准在远程创建一个分支,但两者并未关联 */ 

    11.6 删除远程分支

        git push origin --delete originBranchName /* 推送到远程,删除远程分支 */      

        git push origin : originBranchName            /* 推送到远程,推送一个空分支即删除远程分支 */

    11.7 本地分支与远程分支建立关联关系,以便交互

        git branch --set-upstream-to origin/originBranchName   /* 将当前所处分支与远程分支建立关联关系 */

        git branch --set-upstream-to=origin/originBranchName localBranchName  /* 不论处在哪个分支,但是建立本地分支与远程分支的关联关系 */

    11.8 解除本地分支与远程分支的关联关系

        git branch --unset-upstream          /* 解除当前操作的分支所建立的远程关系(处于某个分支解除某个) */

        

    11.9本地分支重命名

        git branch -m oldBranchName    newBranchName         

12.rebase(美化提交)

    git rebase -i commitId~number             /* 以commitId为起点,合并number个提交 */    

    CommitHistorys 准备合并8c8d49c~5d89b8

    git rebase -i HEAD~2      ||        git rebase -i  5d89b8df2fd6db1e9ee455706375069b17a0ff5c~2

    进入:

    rebaseDetail

    修改 pick关键字==>>>

    rebaseOptions

    rebaseResult

    退出编辑器

    进入提交信息编辑状态可最后修改提交信息,之后保存并退出,就看到之前的三个提交合并到了一个提交里边

13.修改提交备注(远程)

    git rebase -i HEAD~number   /* number确保能够到达要修改的备注信息版本 */

    进入vim编辑器页面,找到要修改的备注版本,将前面的pick改为edit,保存并退出

    git commit --amend  再次进入vim编辑器中,此时修改提交备注信息,保存并退出

    git rebase --skip 完成rebase操作

    git push --force 强制推送到远程

14. 查找指定的提交

git log --grep str  在提交记录中查找符合条件的提交

git log --grep 'str1|str2'  在提交记录中查找符合条件的提交(多个条件需加'')

 

 

           Tips:

1. 当前处于dev分支时:

            git pull origin dev    

            ===>>>   * branch            dev        -> FETCH_HEAD

2.查看所有分支:

    git branch --all 

    dev 

    master

    remotes/origin/HEAD->origin/master

    remotes/origin/dev

    remotes/origin/master          

3.异常退出

    在编辑提交信息等vim页面时,如果出现异常退出现象,哪么重复操作依然进行不了任何操作,此时

需要进入项目的.git文件夹删除交换文件.swp,之后重复操作便可行

.swp

需删除.COMMIT_EDITMSG.swp和COMMIT_EDITMSG

    4. 强制回退远程代码

        errorCommit

         此时我们知道  081aee9e33a9034f22c6b00a95f10cbf855f4302 是一个错误的提交,需要强制回退到远程,

         4.1 将本地分支切回到指定版本

               git reset --hard e914f20e93802a2cfc5f994f10aea2c474a01007

          4.2 将远程强制回退

               git push --force 

    5. 当自己本地分支与远程分支不一样(本地分支回退,但忘记强制推送到远程git push --force 的情况下,本地分支就做了修改并commit)
解决: git checkout -b temp origin/branch 
在temp分支上 git reset --hard commitId(要回退到的版本号本地操作)
git push --force origin HEAD:remoteBranchName(远程操作)
之后切换到要推送的分支,就可以直接推送远程了
    6. 全局配置路径

     vim ~/.gticonfig  可快速修改别名,提交用户信息等

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值