聊聊分布式版本管理工具GIT

聊聊分布式版本管理工具GIT

Scroll Down
小提示,本文编写于  2,731  天前,最后编辑于  2,617  天前,某些信息可能有些出入,仅供参考。

GIT

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就尴尬了。

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就尴尬了。

如何安装Git?

  1. windows下安装git

在网上下载如下图所示的安装文件

image.png

进行默认安装以后,就会在开始菜单中找到如下图所示的客户端快捷方式
image.png

  1. linux下安装git
sudo yum -y install git
  1. 安装成功后,还需要进行设置:

因为git是分布式版本控制系统,所以安装成功首先设置一个用户名和一个邮箱作为一个标识.

  1. 注意:git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

Git的基本操作

image.png

1. 版本库

  版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”.

2. 创建版本库(初始化)

git init

这时候你当前目录下会多一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则会把git仓库给破坏了.

3. 说明

  首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。

4. 添加文件到暂存区

git add fileName1,fileName2...
git add . (添加所有已经修改的文件到暂存区)

5. 提交暂存区文件到本地仓库

git commit -m 'commit description'

6. 查看暂存区状态

git status

7. 查看暂存区中代码的改变

git diff fileName

8. 查看暂存区的提交日志

git log

9. 回退已提交到暂存区但尚未push到远程仓库的代码

git reset --hard commit_version

其中commit_version就是通过日志看到的每次提交的全局唯一版本号

10. 回退到上一版本

git reset --hard HEAD^

11. 查看暂存区内容

git reflog

12. 查看当前分支,其中前面有*符号的表示当前分支

git branch

13. 查看远程分支信息

git branch -a

14. 切换分支

git checkout branchName

15. 新建分支

git checkout -b newBranchName

16. 合并分支

git merge branchName

17. 删除本地分支

git branch -D branchName

18. 删除远程分支

git branch -r -d origin/branch-name (只删除远程仓库test分支,本地保留)
git push origin :branch-name

19. 添加远程仓库位置

git remote add origin remote_url

这样我们就指定了当前git的远程仓库地址。

20. push本地代码到远程仓库

git push -u origin master (-u是把本地分支和远程分支做关联,第一次提交代码到新分支的时候需要,以后只需要使用git push就可以)

注:-u 等于 git push --set-upstream origin branch-name

21. 克隆远程仓库代码到本地

git clone remote_url

22. 隐藏本地修改到缓存区

git stash

23. 恢复缓存区中的修改

1).恢复修改,且不删除stash内容
git stash apply
2).恢复以后,直接删除stash内容
git stash pop

24. 查看远程仓库信息

git remote show origin

25. 查看远程仓库的详细信息

git remote -v

26. 拉取远端最新代码

git pull

27. 设置全局别名

git config --global alias.ac '!git add -A && git commit -m'

这样我们就可以直接使用:git ac 'why you modify' 就可以完成git add和git commit -m 操作

28. 删除文件

git rm file-name

29. 删除暂存区或分支上的文件,但本地工作区间保留,只是不希望这个文件被版本控制

git rm --cache file-name

30. 从远程获取最新的版本信息到本地有以下两个命令:

git fetch origin master
git pull origin master

上面的命令相当于:

git fetch origin master (从远程的origin的master主分支下载最新的版本到origin/master分支上)
git log -p master..origin/master (比较本地的master分支和origin/master分支的差别)
git merge origin/master  (将远程的最新版本合并到本地)

还相当于如下:

git fetch origin master:tmp (从远程获取最新的版本到本地tmp分支) 
git diff tmp (比较不同)
git merge tmp (进行合并)

现实情况下git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并.

31. rebase指定分支(把指定分支上的新提交在当前分支做一次)

git fetch
git rebase origin/branch-name
解决冲突
git add .
git rebase --continue
git push