Git实战使用技巧总结

本文目录 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

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):