Git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git使用 C 语言编写。 GIT 很快,C 语言通过减少运行时的开销来做到这一点
Git常用命令
1)使用我们指定目录作为Git仓库。git init newrepo
2)添加新文件。可以使用add命令添加文件。git add filename
3)提交文件。能真正被保存在Git仓库。git commit -m "Adding files"
4)当我们修改了很多文件,而不想每一个都add,想commit自动来提交本地修改,我们可以使用-a标识。git commit -a -m "Changed some files"
5)删除一个文件 git rm [file name]
6)从git中删除指定文件 git rm 文件名(包括路径)
7)git clone git://github.com/schacon/grit.git
从服务器上将代码给拉下来
8)看所有用户 git config --list
9)看已经被提交的 git ls-files
10)查看本地所有分支。git branch
11)查看当前状态.。git status
12)查看所有的分支。git branch -a
13)查看远程所有分支。git branch -r
14)提交并且加注释。git commit -am "init"
15)将文件给推到服务器上 git push origin master
16)显示远程库origin里的资源 git remote show origin
17)将本地库与服务器上的库进行关联。git push origin master:hb-dev
18)切换到远程dev分支 git checkout --track origin/dev
19)删除本地库develop git branch -D master develop
20)建立一个新的本地分支 dev git checkout -b dev
21)将分支dev与当前分支进行合并 git merge origin/dev
22)切换到本地dev分支 git checkout dev
23)查看远程库 git remote show
提交时发生冲突,你能解释冲突是如何产生的吗?你是如何解决的?
开发过程中,每个人都有自己的特性分支,所以冲突发生的并不多,但如公共类的公共方法,我和别人同时修改同一个文件,他提交后我再提交这些情况下就会报冲突的错误。
1)发生冲突,在IDE里面一般都是对比本地文件和远程分支的文件,然后把远程分支上文件的内容手工修改到本地文件,然后再提交冲突的文件。使其保证与远程分支的文件一致,这样才会消除冲突,然后再提交自己修改的部分。特别要注意下,修改本地冲突文件使其与远程仓库的文件保持一致后,需要提交后才能消除冲突,否则无法继续提交。必要时可与同事交流,消除冲突。
2)发生冲突,也可以使用命令。
-
通过git stash命令,把工作区的修改提交到栈区,目的是保存工作区的修改;
-
通过git pull命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突;
-
通过git stash pop命令,把保存在栈区的修改部分合并到最新的工作空间中;
如果本次提交误操作,如何撤销?
-
如果想撤销提交到索引区的文件,可以通过git reset HEAD file来撤销;
-
如果想撤销提交到本地仓库的文件,可以通过git reset –soft HEAD^n恢复当
前分支的版本库
到上一次提交的状态,索引区和工作空间不变更; -
可以通过git reset –mixed HEAD^n恢复当
前分支的版本库和索引区
至上一次提交的状态,工作区不变更; -
可以通过git reset –hard HEAD^n恢复当
前分支的版本库、索引区和工作空间
至上一次提交的状态。
Git和SVN有什么区别?
Git | SVN |
---|---|
1. Git是一个分布式的版本控制工具 | 1. SVN 是集中版本控制工具 |
2.Git属于第3代版本控制工具 | 2.SVN属于第2代版本控制工具 |
3.客户端可以在其本地系统上克隆整个存储库 | 3.版本历史记录存储在服务器端存储库中 |
4.即使离线也可以提交 | 4.只允许在线提交 |
5.Push/pull 操作更快 | 5.Push/pull 操作较慢 |
6.工程可以用 commit 自动共享 | 6.没有任何东西自动共享 |
git pull 和 git fetch 有什么区别?
git pull 命令:从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。
git fetch :也用于相同的目的,但它的工作方式略有不同。当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。只有在对目标分支和获取的分支进行合并后才会更新目标分支。为了方便起见,请记住以下等式:
<center><h5>git pull = git fetch + git merge</h5></center>
git config 的功能是什么?
git 使用你的用户名将提交与身份进行关联。 git config 命令可用来更改你的 git 配置,比如说用户名啥的。
假设你要提供用户名和电子邮件 ID 用来将提交与身份相关联,以便你可以知道是谁进行了特定提交。为此,我将使用:
git config –global user.name “Your Name”: 此命令添加用户名。
git config –global user.email “Your E-mail Address”: 此命令添加电子邮件ID。