git面试题大全

git 面试大全:

https://blog.nowcoder.net/n/253163e1ac1d482db6482fc7f6522586

https://segmentfault.com/a/1190000019315509

https://blog.csdn.net/nobody_1/article/details/88956315

https://www.cnblogs.com/andy0816/p/12508162.html

https://www.breakyizhan.com/git/5035.html

问题1   多个回滚:

修改历史commit记录中的author和email信息
1.git rebase 模式(单条):
首先 git log 找到要修改的记录。
git rebase -i -p 76892625a7b126f4772f8d7e331ada3552c11ce1
弹出编辑器,在需要修改的 commit 处 由 pick 改变为 edit ,然后 wq 退出 vim;
git commit --amend --author "newName <newEmail>"
执行后即变更了相应的 author 和 email
git rebase --continue
2.git rebase 模式(多条):
git rebase -i HEAD~3 前三次提交
# 输出如下
pick 1 commit 1
pick 2 commit 2
pick 3 commit 3
要修改哪个,就把那行的pick改为edit,然后退出。例如想修改commit 1的author,光标移到第一个pick,要改多条可以修改多个,按i键进入INSERT模式,把pick改为edit:
edit 1 commit 1
pick 2 commit 2
pick 3 commit 3
然后按esc键,退出INSERT模式,输入:wq退出,这时可以看到提示,可以修改commit 1的信息了:
输入amend命令重置用户信息: $ git commit --amend --reset-author
会出现commit 1的提交记录及注释内容,可进入INSERT模式修改注释,:wq退出。
或输入amend命令修改用户信息: git commit --amend --author="newName <newEmail>" 一次修改多条推荐用这个命令
这时再查看提交历史,发现commit 1的author已经变成b(b@email.com)了,且是最新一次记录。
通过continue命令回到正常状态: $ git rebase --continue

问题2 :免密登陆

 git config --global credential.helper store

问题3 :git 回滚分支:

https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C

https://blog.csdn.net/weixin_30685029/article/details/95452360

问题 4  :git 3个区别?

git checkout 

git reset 

 git revert  

https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-%E4%BB%A3%E7%A0%81%E5%9B%9E%E6%BB%9A%EF%BC%9AReset%E3%80%81Checkout%E3%80%81Revert-%E7%9A%84%E9%80%89%E6%8B%A9

问题5 git reset 加不加hard有什么区别?

https://blog.csdn.net/chenpuzhen/article/details/92006378

问题6 如何监听git提交?

https://www.cnblogs.com/lidongming/p/9956907.html

原文地址:https://www.cnblogs.com/hacker-caomei/p/14389407.html