git常用命令和知识点---git常见面试题

git常见面试题

  1. 配置个人的用户名和电子邮箱

  2. 对一个文件进行修改,然后推送需要哪几个步骤?

    git add git commit git push

    这三个步骤缺一不可,add是对修改的add,不是将文件加入到git版本库中。git管理的是修改,不是文件。新建一个文件也是一次版本库的修改。

  3. 如何克隆远程代码

    git clone [远程仓库地址]

  4. 如何查看本地所有的分支?如何查看远程的所有分支?

    git branch

    git branch -a

  5. 如何查看所有的提交记录

    扫描二维码关注公众号,回复: 11628663 查看本文章

    git log

  6. 如何回滚至某个提交?

    git reset --hard [提交记录ID]

  7. fetch和pull的区别

    git pull = git fetch + git merge

  8. 如何快速地只拉取一个分支的代码?

    git clone -b dev [仓库地址]

  9. 如何拉取所有的分支

    git clone [仓库地址]

    git branch -a

    按照分支名逐个执行:git checkout -b [分支名] origin/[分支名]

  10. 如何关联远程分支

git remote add origin [仓库地址]

  1. 如何查看远程地址

    git remote -v

  2. 如何将一个文件从版本库中删除

    git rm [file_name]

  3. 撤销修改过的未提交的文件

    git checkout [file_name]

  4. 修改远程仓库地址

    方法一:

    • git remote rm origin
    • git remote add origin new_address

    方法二:

    • git remote set-url origin new_address

    方法三:

    • git remote rename origin old-origin
    • git remote add origin 新的仓库地址

    方法四:

    修改配置文件.git/config/中对应的[remote “origin”]条目的值

  5. 如何将一个仓库的复制到另一个仓库

    • git clone --bare 仓库地址
    • 修改远程仓库地址
    • git push -u origin --all
  6. .git目录下的文件详解

  7. 如何创建分支

    git branch [分支名]

  8. 删除一个分支

    git branch -d [分支名]

  9. 如何切换分支

    git checkout [分支名]

    git switch [分支名]

  10. 如何创建并切换到新的分支

    git checkout -b [分支名]

    git switch -c [分支名]

  11. git合并本地分支

    例如要将dev分支的提交,合并到当前分支

    git merge dev

  12. 什么是本地分支冲突

    commit1——commit2——commit3 ——commit4 <—— master

    ​ |___________________commit5 <—— dev

    这种情况,即两个分支在一个相同的版本上,都进行了个自己的修改提交,则会产生冲突。想要在master分支下通过git merge合并另一个分支,会冲突,如下。同时分支名会变为(mater|MERGING)

    $ git merge dev
    Auto-merging readme.txt
    CONFLICT (content): Merge conflict in readme.txt			# 告知冲突产生的文件
    Automatic merge failed; fix conflicts and then commit the result.
    tensory@DESKTOP-F53T0L7 MINGW64 /e/LearnGit2/LearnGit (master|MERGING)	# 显示处于MERGING状态
    $ git status
    On branch master
    Your branch is ahead of 'origin/master' by 2 commits.
      (use "git push" to publish your local commits)
    
    You have unmerged paths.
      (fix conflicts and run "git commit")
      (use "git merge --abort" to abort the merge)
    
    Unmerged paths:
      (use "git add <file>..." to mark resolution)
            both modified:   readme.txt
    
    # 查看master下readme.txt文件
    
    # LearnGit
    this is a dev branch
    <<<<<<< HEAD
    I am master
    =======
    modified in dev branch
    >>>>>>> dev
    
    # 查看dev下的readme.txt	# 合并过程中,无法更换分支
    
  13. 如何解决本地分支冲突?

    在22中,只需要按照文件内容提示,将master分支下的内容修改,然后add,再commit即可解决冲突,同时分支状态名由(master|MERGING)改变为(master)。

  14. 在合并中途发现冲突,如何放弃合并?

    git merge --abort

  15. 合并过程中谁的改动在前面?

    master想合并dev,则master的改动在前面

    dev想合并master,则dev的改动在前面

  16. 如何查看提交记录图

    git log --graph

  17. FastForward模式是什么?有什么坏处?

    # master合并dev的时候,这样会多一条提交记录,可以追踪
    git merge --no-ff -m '非Fast Forward模式'  dev
    
    区别如下
    *   38196de (HEAD -> master) master用noff的方式合并了	
    |\
    | * 27bdac3 (dev) dev的修改
    |/
    * dc3cf25 试一下with ff
    
    可以看出,no-ff指明了是对dev分支的合并,并且最后合并新增了一条提交记录。
    FastForward模式没有保留被合并分支(dev)的信息,看不出来有合并的记录,看不出来是对dev分支的合并
    
  18. 如何获取分支dev的最新数据

    git pull origin dev		# 如果冲突,会提示无法MERGE,并会提示哪些文件冲突,按照冲突解决办法解决即可
    
  19. 协作过程:

    # 情景一、
    A和B为两个开发者,共同修改远程分支dev,A和B本地具有与远程分支dev相同的分支
    1. A修改readme.txt,add--commit--push,一切将正常
    2. B修改readme.txt, add-commit,push将提示冲突,需要git pull,然后手动合并readme.txt中冲突的文件,合并后,add---commit---push,将正常。
    
    # 情景二、
    A和B为两个开发者,共同修改远程分支dev,A和B本地具有与远程分支dev相同的分支
    1. A添加文件run.sh,add---commit---push,一切将正常
    2. B修改readme.txt, add---commit,push将提示冲突,需要通过git pull合并冲突,会提示输入提交日志,输入保存后,自动合并到本地,并完成commit。再进行push,将正常。
    
  20. 多人协作的过程中,开始写代码的第一步操作是什么?

    git pull origin dev

    合并远程仓库中最新的代码到本地

  21. 远程分支的请求合并

    1. 想将dev分支合并到master分支,在github页面,点击 pull requests,然后按照提示,逐步添加请求。
    2. 仓库管理员,收到请求后,决定是否进行合并。确定合并,那么master分支就和dev合并了
    
  22. 如何比较本地dev分枝和远程dev分枝的差别?

    # 远程的分枝拉取到本地,不执行合并
    git fetch origin dev
    
    # 显示远程有而本地没有的信息
    git log dev..origin/dev
    
    # 统计问价的改动
    git diff --stat dev origin/dev
    
  23. git rm是什么意思?如何将文件移出管理系统?

  24. 问题场景:远程的dev在commit10上,而本地分支回退到了上一个版本commit9,现在本地分支进行了修改,push的时候被拒绝,如何解决?

    因为远程分支和本地分支出现了分叉,push会被拒绝。做法是将远程分支回退到上一个版本。

  25. 如何只下载最新的版本?

    git clone 地址  --depth=1
    

猜你喜欢

转载自blog.csdn.net/ten_sory/article/details/107522932