• Git


    使用可视化工具SourceTree

    • 下载地址:https://www.sourcetreeapp.com/
    • 使用branch管理代码
      1. 下载git代码:Clone/New ->粘贴项目git url -> 选择本地存放路径->Clone
      2. 创建本地分支:Branch+ -> 填写分支名称 ‘branch1’ -> Creat Branch,创建之后默认就是在当前分支下
      3. 修改文件
      4. 提交代码并创建新的git远程仓库分支:将修改的文件从unstage的状态变成stage的状态 -> Commit -> Push 要选择对应的git分支'branch1'进行push, 完成之后git上的当前项目下会创建一个新的分支叫做‘branch1’
    • Git上面生成pull request
      • 找到branch1->new pull request,则会在当前分支下生成一个新的pull request,可以进行merge操作合并到master上
    • 每次进行代码开发前,都要保证当前开发的本地分支获取到最新的代码
      1. 使本地master代码为最新:将代码切换到master上面 -> 右击,pull origin/master -> Pull from remote: origin & Remote branch to pull: master, 完成
      2. 是当前branch代码为最新:本地master代码为最新后,将代码切换到branch1上面 -> 右击master -> Merge master into current brach, 完成
    • 一些注意事项:
      1. 如果当前分支有没有提交的修改,是不允许切换到master或者别的分支的
      2. 如果想在别人创建的分支上面进项修改,则可以:在sourceTree上找到git上面对应的分支 Remote/origin/branch2 -> 右击branch2,check out, 本地就会有branch2这个分支,进行修改后提交,还是提交到对应的git branch上面就可以了 

     

    使用Git Bash命令

    修改代码并提交的流程:

    1. 方法一:先在远程端建立远程分支

      $ git clone path
      $ git checkout local_branch  //切换到本地分支
      $ git add -A    //增加文件
      $ git commit -am "注释"   //提交代码
      $ git push    //推动代码到远程分支

    2. 方法二:直接建立本地分支

      $ git checkout -b hong.wang5_1  //创建并切换到新分支相当于:git branch xxx, git checkout xxx
      $ git commit -am "注释"
           $ git push origin hong.wang5_1  //创建远程分支并push代码

    更新本地分支代码流程

      $ git checkout master   //切换到本地master
      $ git pull    //拉取最新代码
      $ git checkout local_branch  //切换到本地分支
      $ git merge master  //合并本地master到本地分支

     其他有用命令

      $ git branch  //查到本地分支
           $ git branch -a  //查看远程分支

      $ git fetch -p  //同步远程分支的信息

      $ git push origin -d remote_branch  //删除远程分支
      $ git branch -d local_branch  //删除本地分支  

    想要覆盖本地修改,但是遇到master有修改的内容
    git checkout master
    git branch -d local_branch //先删除本地分支
    git status //查看master状态
    git checkout . //删除修改内容
    git clean -f //删除新建的文件

    拉取代码时遇到冲突

    git stash (把本地所有修改暂存)

    git pull

    git stash pop (将暂存代码合并到本地最新代码中,冲突文件中会显示冲突内容)

    git stash clear(清除暂存)

    撤销本地commit

    >>> git reset --soft HEAD^  不删除工作空间的代码改动,撤销commit, 不撤销git add

    >>> git reset --mixed HEAD^  不删除工作空间的代码改动,撤销commit, 并且撤销git add (默认值,等于git reset HEAD^)

    >>> git reset --hard HEAD^  删除工作空间的代码改动,撤销commit, 并且撤销git add (默认值,等于git reset HEAD^)


    合并多个commit

    • 把无用的,误操作的多个commit合并成一个大的commit,可以是git上面的pull request的历史提交记录看起来整洁
    • 学习地址:http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
    • 练习:
      1. cmd到当前项目下,我喜欢使用source tree上面的Terminal,这样可以快速进到对应的分支下进行操作
      2. cmd: git rebase -i HEAD~3   回车(这里的3代表想合并的commit数量,从最新的开始)
      3. 第二步操作之后,命令行中会显示最新的三个commit,我们从第二个commit开始,将pick换成squash (因为要留一个当做合并的头头)-> 键盘上‘退出’ -> 键盘上‘:’ -> 键盘上 ‘wq’ (代表保存退出)
      4.  第三步之后界面上会显示压缩的状态,最后可以输入这个合并commit的相关注释,也可以不输入 -> 键盘上‘退出’ -> 键盘上‘:’ -> 键盘上 ‘wq’ (代表保存退出)

      5. 第四步之后界面上会显示rebase的结果,source tree上面对应的branch会显示3个pull,1个push(这是因为git上面的branch和本地的branch对比的结果,所以是没有办法直接用source tree将这个更改push上去的,因为本地的branch相对于git来说是落后的,因此只能用命令行强行push,如果source tree上面有办法强行push也是可以的)

      6. 最后一步就是强行push:cmd 'git origin branch1:branch1', 完成,对应的pull request中的commit记录会合并
    • 注意事项:
      • 如果向重新rebase,则可以在本地项目.git目录下删除之前生成的rebase..文件,不然是不能重新开始的
  • 相关阅读:
    oracleI基础入门(6)sql语句Substring Crazy
    oracleI基础入门(7)table约束 Crazy
    oracleI基础入门(7)table视图 Crazy
    SQL附加分离数据库(命令)
    双截棍 C语言版 (超搞笑)
    AspNetPage分页(repeater),自己做的例子基本代码
    记录
    RegularExpressionValidator控件中正则表达式用法
    20 个经典的 Ajax + CSS 表格
    GridView各个事件中,怎样获取主键值
  • 原文地址:https://www.cnblogs.com/lj8023wh/p/7117080.html
Copyright © 2020-2023  润新知