git命令小记

2020-04-23 15:58:25 浏览数 (1)

什么是git

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与 SVN 区别

因为以前一直使用SVN,突然转到Git后感觉不太习惯。 Git 与SVN不同,它采用了分布式版本库的方式, Git 与 SVN 区别点:

1.GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。 2.GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。 3.GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。 4.GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。 5.GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

接下来开始git之旅。

创建新仓库

创建新文件夹,打开,然后执行:

代码语言:javascript复制
git init

检出仓库

创建一个本地仓库的克隆版本:

代码语言:javascript复制
git clone /path

克隆远端服务器上的仓库:

代码语言:javascript复制
git clone username@host:/path

本地仓库的管理说明

提交代码入库

提交代码前,先要添加代码入暂存区:

代码语言:javascript复制
git add <filename>
git add *

提交代码入HEAD:

代码语言:javascript复制
# 提交暂存区到仓库区
$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a

# 提交时显示所有diff信息
$ git commit -v

# 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]

注意:这时的代码并没有进入远程服务器。

推送到远程服务器

将改动提交到远端仓库:

代码语言:javascript复制
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force

# 推送所有分支到远程仓库
$ git push [remote] --all

分支

列出所有本地分支:

代码语言:javascript复制
git branch

列出所有远程分支:

代码语言:javascript复制
git branch -r

切换分支:

代码语言:javascript复制
# 切换到指定分支,并更新工作区
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

查看信息

代码语言:javascript复制
# 显示有变更的文件
$ git status

# 显示当前分支的版本历史
$ git log

# 显示commit历史,以及每次commit发生变更的文件
$ git log --stat

撤销

恢复暂存区的指定文件到工作区:

代码语言:javascript复制
 git checkout [file]

参考

GIT 常用命令 git - 简明指南

0 人点赞