一、什么是Git

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

二、Git和SVN的区别

422b5d8b9326679fcf2270205f9ea1a1.png

传统版本集中式控制系统,与中央服务器进行交互版本控制。

23031b64baa5334c57e618898abfef40.png

分布式版本控制,将database同步到本地,防止中央服务器瘫痪的时候无法备份文件。

a27cb065d57261c8342a14713ed1e6d4.png

3f74df6501c0e756baccb6ec232a77ac.png

通过以上两图的比较我们可以看出,两者的主要区别在于:

SVN主要存储的是文件中的差异,而Git是备份完整的文件。

此外:

1、Git是分布式的SCM,SVN是集中式的

2、Git每个历史版本存储完整的文件,SVN存储文件差异

3、Git可离线完成大部分操作,SVN则相关

4、Git有着更优雅的分支和合并实现

5、Git有更强的撤销修改和修改版本历史的能力

6、Git速度更快、效率更高

三、Git的三个级别

local>global>system 本地仓库>当前用户>system

三种方式查看git文档:

git config --help

git help config

man git -config

以下命令配置每次提交的用户信息

git config --global user.name XXXXX

git config--global user.email XXXXX

config的增加:

git config --global --add user.name shaw

git config --global --add user.email xxxxx@qq.com

config的查看:

git config --get user.name

git config--list --global

config的删除:

git config --global --unset user.name

当user.name为多个的时候,user.name后面要制定相对应的名称

config的修改:

git config --global user.name xxxx

另外config还可以重新命名命令行:

比如我们要给重新命名一下命令git log --oneline --decorate --graph --all

则可以输入:

git config --global alias.lol "git log --oneline --decorate --graph --all"

这样下次只要输入 git lol 就可以达到输入之前命令的效果了。

四、Git的工作流程

Git有三个工作区构成

c3f4975e86acd58bf8e740675907bcab.png

1、工作区(working directory) 也就是你所操作的工作区

2、暂存区(stage index)  即将提交到历史记录区的一个缓冲区

3、历史记录区(history)   历史记录区

8f4fcd34428b49f44e9f3b9af901afe2.png

Git使用40个16进制字符的SHA-1 Hash来唯一标识对象,当一个文件被提交到暂存区的时候,同时也生成一个唯一标识,这样也提高了效率。

五、git命令速查

git branch 查看本地所有分支

git status 查看当前状态

git commit 提交

git branch-a 查看所有的分支

git branch-r 查看远程所有分支

git commit-am "init"提交并且加注释

git remote add origin git@192.168.1.119:ndshow

git push origin master 将文件给推到服务器上

git remote show origin 显示远程库origin里的资源

git push origin master:develop

git push origin master:hb-dev 将本地库与服务器上的库进行关联

git checkout--track origin/dev 切换到远程dev分支

git branch-D master develop 删除本地库develop

git checkout-b dev 建立一个新的本地分支dev

git merge origin/dev 将分支dev与当前分支进行合并

git checkout dev 切换到本地dev分支

git remote show 查看远程库

git add .

git rm 文件名(包括路径) 从git中删除指定文件

git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

git config --list 看所有用户

git ls-files 看已经被提交的

git rm [file name] 删除一个文件

git commit-a 提交当前repos的所有的改变

git add [file name] 添加一个文件到git index

git commit-v 当你用-v参数的时候可以看commit的差异

git commit-m "This is the message describing the commit"添加commit信息

git commit-a -a是代表add,把所有的change加到git index里然后再commit

git commit-a -v 一般提交命令

git log 看你commit的日志

git diff 查看尚未暂存的更新

git rm a.a 移除文件(从暂存区和工作区中删除)

git rm--cached a.a 移除文件(只从暂存区中删除)

git commit-m "remove"移除文件(从Git中删除)

git rm-f a.a 强行移除修改后文件(从暂存区和工作区中删除)

git diff--cached 或 $ git diff --staged 查看尚未提交的更新

git stash push 将文件给push到一个临时空间中

git stash pop 将文件从临时空间pop下来---------------------------------------------------------git remote add origin git@github.com:username/Hello-World.git

git push origin master 将本地项目给提交到服务器中-----------------------------------------------------------git pull 本地与服务器端同步-----------------------------------------------------------------git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。

git push origin serverfix:awesomebranch------------------------------------------------------------------git fetch 相当于是从远程获取最新版本到本地,不会自动merge

git commit-a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :

git branch branch_0.1master 从主分支master创建branch_0.1分支

git branch-m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0git checkout branch_1.0/master 切换到branch_1.0/master分支

du-hs

git branch 删除远程branch

git push origin :branch_remote_name

git branch-r -d branch_remote_name-----------------------------------------------------------初始化版本库,并提交到远程服务器端

mkdir WebApp

cd WebApp

git init 本地初始化

touch README

git add README 添加文件

git commit-m 'first commit'git remote add origin git@github.com:daixu/WebApp.git

增加一个远程服务器端

上面的命令会增加URL地址为'git@github.com:daixu/WebApp.git',名称为origin的远程服务器库,以后提交代码的时候只需要使用 origin别名即可

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐