前言: git 现在作为目前最流行的版本控制软件,有其独特的优势,相比与ClearCase, SVN 而言,开源,免费分布式的软件特性,越来越获得主流软件公司的青睐。在软件工程师的面试中基本上也会有所涉及。
下面就是笔者常见的几个问题,做出解答:
问题 1: 如果在Git repo 下误删了某些文件,update 文件没有任何反应?
答案:当前在dev分支需要切换到master分支。
git checkout master
git reset --hard
问题 2:如何强行替换掉本地改动?
答案:
git fetch --all
git reset --hard origin/master
git pull
问题3:
git 执行git pull –rebase报错误如下:
error: Cannot pull with rebase: You have unstaged changes.
error: Additionally, your index contains uncommitted changes.
原因:如果有未提交的更改,是不能git pull的
解决:
git stash #可用来暂存当前正在进行的工作
git pull –rebase
git stash pop 从Git栈中读取最近一次保存的内容
问题 4:
git commit 出错,出现没有merger的文件?
error: commit is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
解决:
git reset book.java
git checkout -- book.java
git commit -m "change book adapter"
问题 5:
如何查看某个文件的提交历史?
方法1:
git log --pretty=oneline book.java 会显示这个文件提交的历史记录以及对应的hashcode
git show hash_code 查看详细提交内容
方法 2:
git log book.java 查看 文件的commit history
git log -p book.java 显示每次提交的diff。
git show hash_code book.java 查看详细提交内容
网友评论