版本管理最好用的工具,你懂多少?(版本管理工具有哪些)

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

简单来说,版本控制就是用于管理多人协同开发项目的技术。下面要讲的是一个名为Git的版本控制器。

Git的下载:直接在git官网下载的话可能会有点慢,推荐使用淘宝镜像下载:CNPM Binaries Mirror

我的windows系统,安装起来直接下一步下一步的操作就可以了。

具体学习资料,可以到官方文档上学习下,我总结了一些面试常问的相关知识点,如果都掌握了,就基本没有什么问题了。

1、Git是什么使用什么语言编写的?

git使用的是C语言编写的,git很快,c语言通过减少运行的开销来做到这一点。

2、git如何查看所有分支?

A. git status B. git reflog C. git branch -a D. git log

正确答案: C

3、 如何创建分支?

A. git branch 分支 B. git create 分支 C. git pull 分支 D. git push 分支

正确答案: A

4、 如何跳转已经存在的分支?

A. git checkout 分支名 B. git add 分支名 C. git push 文件名 D. git rm 文件名

正确答案: A

5、 使用git管理代码如何推送到远程?

A. git add

B. git commit

C. git pull

D. git push origin master

正确答案: D

6、 git 查看提交日志的命令是?

A. git commit

B. git reflog

C. ssh-keygen

D. netstat -anp

正确答案: B

7、 在git中如何跳转指定版本?

参考答案:

1. git reflog —查看日志

2、git reset –hard 版本号

8、 Git 和 SVN 有什么区别?

Git

SVN

1. Git 是一个分布式的版本控制工具

1. SVN 是集中版本控制工具

2. 它属于第 3 代版本控制工具

2. 它属于第 2 代版本控制工具

3. 客户端可以在其本地系统上克隆整个存储库

3. 版本历史记录存储在服务器端的存储库中

4. 即使离线也可以提交

4. 只允许在线提交

5.Push/pull 操作更快

5.Push/pull 操作较慢

6. 工程可以用 commit 自动共享

6. 没有任何东西能自动共享

9、 Git pull 和 Git fetch 有什么区别?

Git pull 命令从中央存储库中提取特定分支的信息更改或提交, 并更新本地存储库中的目标分支.

Git fetch 也用于相同的目的, 但它的工作方式略有不同. 当你执行 Git fetch 时, 它会从所需的分支中提取所有新提交, 并将其存储在本地存储库中的新分支中. 如果要在目标分支中反映这些更改, 必须在 Git fetch 之后执行 Git merge. 只有在对目标分支和获取的分支进行合并后才会更新目标分支. 为了方便起见, 请记住以下等式:

Git pull = Git fetch Git merge

10. 什么是 Git stash?

首先应该解释 Git stash 的必要性.

通常情况下, 当你一直在处理项目的某一部分时, 如果你想要在某个时候切换分支去处理其他事情, 事情会处于混乱的状态. 问题是, 你不想把完成了一半的工作的提交, 以便你以后就可以回到当前的工作. 解决这个问题的答案是 Git stash.

再解释什么是 Git stash.

stash 会将你的工作目录, 即修改后的跟踪文件和暂存的更改保存在一堆未完成的更改中, 你可以随时重新应用这些更改

版本管理最好用的工具,你懂多少?(版本管理工具有哪些)

常用命令总结:

# 提交修改三步 add ,commit, push.Git pull

拉取资源。

# 切换回 devGit checkout dev###################Git 检出其他分支的某个文件到当前分支并提交 ############Git checkout **.javaGit statusGit add **.javaGit commit -m ''Git pushGit lg#############Git 如何让单个文件回退到指定的版本 ########1. 进入到文件所在文件目录, 或者能找到文件的路径, 查看文件的修改记录

回退到指定的版本

#3. 提交到本地参考Git commit -m "注释"#4. 更新到工作目录Git checkout **.java#5. 提交到远程仓库Git push origin master#6. 撤销回退到合并之前的远程 dev 版本Git reset --hard dev#7. 显示提交更改内容Git show

还有一些很有用但是不常用的命令:

git log -p -1 查询最近一次的文件更改.

git diff 查看已暂存和未暂存修改

git rm fileName 从 Git 仓库中删除

git reset HEAD README.md 可以取消暂存再次查看文件状态被修改的文件变成 unstaged 状态

添加远程仓库:

Git remote add <libraryName> <url>$ Git remote add test https://libraryUrl/demo/demo.Git$ Git remoteorigintest

远程仓库中抓取与拉取

$ Git fetch [remote-name]

这个命令会访问远程仓库, 从中拉取所有你还没有的数据. 执行完成后, 你将会拥有那个远程仓库中所有分支的引用, 可以随时合并或查看.

推送到远程仓库

Git push [remote-name] [branch-name]

, 下面是推送当前分支到远程的 master 分支

$ Git push origin master

打标签

像其他版本控制系统 (VCS) 一样, Git 可以给历史中的某一个提交打上标签, 以示重要.

查看所有标签 Git tag。

git cherry-pick

命令git cherry-pick 通常用于把特定提交从存储仓库的一个分支引入到其他分支中。常见的用途是从维护的分支到开发分支进行向前或回滚提交。
合并(merge) 变基(rebase)

forking的工作流程的优点

它不是用单个服务端仓库充当“中央”代码库,而是为每个开发者提供自己的服务端库。forking工作流程最常用于公共开源项目中。

Forking工作流程的主要优点是可以汇集提交贡献,又无需每个开发者提交到一个中央仓库中,从而实现干净的项目历史记录。开发者可以推送代码到自己的服务端仓库,而只有项目维护人员直接推送代码到官方仓库中。

当开发者准备发布本地提交时,他们的提交会推送到自己的公共仓库中,而不是官方仓库中。 需要发布则提交合并请求,他们向主仓库请求拉取(pull request),项目维护人员(合并人)还可以对项目进行审核更新。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。