Git实战使用技巧总结

作者: 前端辉羽 | 来源:发表于2020-04-30 16:46 被阅读0次

    本文目录

    • 1.克隆分支到本地
    • 2.Git 分支相关问题
    • 3.解决冲突
    • 4.版本回退=>撤销上一次的提交
    • 5.git 提交到本地仓库有问题怎么办
    • 6.Git 代码已经 push 上去发现有问题
    • 7.Git 关于暂存的问题

    1.克隆分支到本地

    git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
    1. 找一个干净目录,假设是git_work
    2. cd git_work
    3. git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
    4. cd project
    5. git branch -a,列出所有分支名称如下:

    remotes/origin/dev
    remotes/origin/release
    

    6. git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
    7. git checkout -b release origin/release,作用参见上一步解释
    8. git checkout dev,切换回dev分支,并开始开发。

    2.Git 分支相关问题

    分支中的常用命令:

    • git 拉取指定分支的代码:git clone -b 分支名称 地址
    • 查看当前分支:git branch
    • 查看远程分支:git branch -a
    • 创建并切换分支:git checkout -b add_orderdesc
    • 切换分支:git checkout 分支名称
    • 查看当前的本地分支与远程分支的关联关系:git branch -vv

    3.解决冲突

    git冲突在这两天有些频繁,在git pull合并代码的时候,就发生冲突,而且反复执行发现还是存在冲突,后来发现了一个状态–Merging。
    解决方法
    git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程

    4.版本回退=>撤销上一次的提交

    git reset --hard head
    该命令是回退版本信息,在Git中,用HEAD表示当前版本,上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。

    5.git 提交到本地仓库有问题怎么办

    情景:最近一次 commit 的代码有问题怎么办?
    这时候可能有小伙伴说直接修改再提交一次不就好了,这里说一下优雅的方式,不进行再一次提交,修改这次提交。

    git add 我是修改内容.txt
    git commit --amend
    

    【amend】修正,会对最新一条 commit 进行修正,会把当前 commit 里的内容和暂存区(stageing area)里的内容合并起来后创建一个新的 commit,用这个新的 commit 把当前 commit 替换掉。
    输入上面的命令后,Git 会进入提交信息编辑界面,然后你可以删除之前的 changeId,并且修改或者保留之前的提交信息,:wq 保存按下回车后,你的 commit 就被更新了。
    对于 amend 还可能出现几种小问题,下面列举下:
    刚刚写的提交信息有问题,想修改怎么办?
    git commit --amend -m "新的提交信息"
    刚刚提交完代码发现,我有个文件没保存,漏了提交上去怎么办?
    最简单的方式,再次 commit:
    git commit -m "提交信息"
    另一中方式,使用--no-edit,它表示提交信息不会更改,在 git 上仅为一次提交。

    git add changgeFile // changeFile 刚刚漏了提交的文件
    git commit --amend --no-edit
    

    6.Git 代码已经 push 上去发现有问题

    情景:出错内容已经 push 到了 master 分支
    这种情况可以使用 Git 的 revert 指令。
    git revert HEAD^
    上面这行代码就会增加一条新的 commit,它的内容和倒数第二个 commit 是相反的,从而和倒数第二个 commit 相互抵消,达到撤销的效果。
    在 revert 完成之后,把新的 commit 再 push 上去,这个 commit 的内容就被撤销了。
    revert 与前面说的 reset 最主要的区别是,这次改动只是被「反转」了,并没有在历史中消失掉,你的历史中会存在两条 commit :一个原始 commit ,一个对它的反转 commit。

    7.Git 关于暂存的问题

    假如正在开发手中需求的时候,突然来了个紧急 bug 要修复,这时候需要先 stash 已经写的部分代码,使自己返回到上一个 commit 改完 bug 之后从缓存栈中推出之前的代码,继续工作。

    • 添加缓存栈: git stash
    • 查看缓存栈: git stash list
    • 推出缓存栈: git stash pop
    • 取出特定缓存内容:git stash apply stash@{1}

    注意:没有被 track 的文件(即从来没有被 add 过的文件不会被 stash 起来,因为 Git 会忽略它们。如果想把这些文件也一起 stash,可以加上 -u 参数,它是 --include-untracked 的简写。就像这样:git stash -u

    相关文章

      网友评论

        本文标题:Git实战使用技巧总结

        本文链接:https://www.haomeiwen.com/subject/ysazwhtx.html