SVN个GIT开发常用命令

SVN 使用步骤
1. svn co http://10.10.11.12/svn/prj001        //co-->checkout
1.1 svn info  //查看当前库的信息
2. svn st -q  //st->status
3.svn add file
4.svn ci -m"xxxx" //ci-->commit, 直接ci就进comment编辑界面,提交之前update一下
5.svn up //up-->update
5.1 svn up -r 331 A/B/C.c   //将C.c文件更新到331版本
6.svn log | less //查看提交记录倒序

7.svn export -r 331 http://10.11.22.11/svn/prj001  //将prj001的331版本的内容load下来

8.svn diff -r 331:HEAD A/B/C.c>a                 //将C.c文件331版本和当前版本的差异存到a文件中
9.svn revert A/B/C.c    // 将C.c文件的修改回复掉
10.svn merge -r 934:933 path (把933相对于934的改动,整合到934上)

11. 解决冲突:
    D     C common/include/libs
              >   local dir unversioned, incoming dir add upon update
    1) svn revert common/inckude/libs -R (将这个目录revert回去)
      2)svn up -r1109 common/inckude/libs (再将这个目录更新到你期望的版本)


GIT 使用步骤
首先 Git clone  : git@GitLab.ovt.com:soc/soc-fw/OAX4600_fw.git
然后本地对文件进行一些修改后,希望提交代码
1. git status   //    查看当前状态, 有哪些文件没 add  哪些没commit
2. git add make/combine.c   或者 git add .   //将要提交的代码传到缓存区
3. git stash    //将本地其他修改存起来
4. git pull    //从远程仓库拉最新code到本地
5. git commit --amend  //上传
6. git commit -m 'support crc poly in combine single'   //将暂存区的code提交到本地仓
7. git stash apply | git stash pop
{
    8. git branch -a
    9. git checkout master
    10. git merge tmp
}
11. git  push origin master    //推入远程库

----------------------------------
git fetch origin    获取但不合并  origin 是远程库的别名
    
想还原本地某个文件的修改:
git checkout ram/calfw/burn_single.c

12. git checkout -b dev/OAX46-22/MAD_clock   // 新建一个分支 dev/OAX46-22/MAD_clock
13. git checkout master        //切换到master分支
14. git push --set-upstream origin dev/OAX46-22/MAD_clock  //在远程新建了一个分支,并把这些修改提交到了远程分支上
    $ git checkout -b dev  //创建并check出dev分支
    $ git push origin dev(本地):dev(远程)//推送本地分支到远程分支,没有自动创建远程分支
    
15. git reset --soft HEAD^ //commit之前但是还没有push,想取消这次commit
16. git 切换分支时会把未add或未commit的内容带过去.
    工作中分支上修改了内容,未提交,切换分支时,把修改内容带过去了。查了一下原因.

    因为未add的内容不属于任何一个分支, 未commit的内容也不属于任何一个分支。 也就是说,对于所有分支而言, 工作区和暂存区是公共的。

    如要想在分支间切换, 又不想提交 怎么办呢?

    切换分支时, 先执行 git stash ,再执行git checkout  master

    当切换回来时,执行git checkout dev,再执行 git stash pop. 未提交的状态就恢复了
17. git 如果要回退到某个版本再提交 (此时的提交一般会被reject)
    git log --online // 查看log信息及版本hash 
     git reset --hard  版本号   //版本号从log里得到  做这个之前把要提交的内容一定要备份
    (替换掉你的修改)
    git add A.c B.c     //正常 提交步骤1 add
    git commit          //正常 提交步骤2 commit
    git push -u -f origin dev/OAX-46/MAD_cpu  //-f 是强制推送, -u是单独建立这个分支的关联,以后可以直接用git pull or git push 但是还是建议填全的 
    (注:强制提交后,当前版本后面的提交版本将会删掉)
----------------------------------------------------
    git log --online // 查看log信息及版本hash 
     git reset --hard  版本号   //版本号从log里得到  做这个之前把要提交的内容一定要备份
    如果没有修改直接:
    git push --force
-------------------------------
18. 想把master上新更新的内容 更新到我现在得分支上
      git merge master 

19. 如果你本地没有这个分支,remote上有这个分支,
    git checkout -b  dev/B origin/dev/B            //如此你本地的这个dev/B 和remote上的 origin/dev/B建立了关联了
    git branch -vv         //用于查看关联

20. git stash list  查看stash  
      git stash 把当前修改存起来
      git stash pop 把list里最上面的也就是stash@[0] 拿出来 //如果多个stash pop就是一层一层往外拿
      git stash drop n 把第n层的stash 删掉
      git stash apply n 取出指定版本的修改
      git stash -p  逐个选择需要stash的文件
***  git stash push -m "暂存描述" src/views/home/index.vue vue.config.js   //只stash 指定文件
21.     如果现在目录改了A B两个文件 只想stash A而保留B继续工作,应该这样操作:
    1. git add B  //B进暂存区
    2. git stash -k // 不要是save -k
    3. git reset HEAD B
    (但是必须要注意的是,之后你如果要git stash pop,会显示和B有冲突,所以pop之前把 B checkout下复原)
22. 如果想查看Git上某个版本上的内容,
    git checkout 版本号      //其效果就是切换到一个新的名字为这个版本号的分支上
23. 对比两个版本某个文件的差别
    git diff version_old version_new file.c >b
例:git diff e1620d2627ed9b4f03fe83de0094b67a0c34e3d7 fdf87b2e672df63d7e30261e203f74c4a9ddfa2c ASPICE_fw/cpu/include/media/libvs/libvs.h>b
24. 对比两个分支上的区别
    git diff master branch1>a      // 对比分支 master和branch1上的所有差异
    git diff master branche1 A/B/C.c>a //对比分支 master和branch1上文件C.c上文件的差异
25. git fetch origin dev/SDK_test:dev/SDK_test   //把远程分支拉下来并且关联

26. git 重命名  分支名
    1. 本地推送前:  1)git branch -m old_name new_name
    2. 本地已推送:1)git branch -m old_name new_name
               2)git push --delete origin old_name
               3)  git push origin new_name
               4)  git branch --set-upstream-to=origin/new_name (这一步还是要把,别以为和本地分支和远程分支名称相同就不用了)
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值