Git 基本命令

Git 基本命令

1. Git 简介

Git是分布式版本控制系统,与其相对的则是CVS及SVN的集中式的版本控制系统。

  • 集中式版本控制系统:集中式版本控制系统,版本库是集中存放在中央服务器的,而大家工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始工作,工作完成,再把自己的修订推送给中央服务器。这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
  • 分布式版本控制系统:首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

2. Git 基本命令

2.1 创建仓库

  1. git clone克隆一个仓库

git clone: 这是较为简单的一种初始化方式,当你已经有一个远程的Git版本库,只需要在本地克隆一份。

  1. git init 和 git remote初始化一个仓库

git init和git remote:这种方式稍微复杂一些,当你本地创建了一个工作目录,你可以进入这个目录,使用’git init’命令进行初始化,Git以后就会对该目录下的文件进行版本控制,这时候如果你需要将它放到远程服务器上,可以在远程服务器上创建一个目录,并把 可访问的URL记录下来,此时你就可以利用’git remote add’命令来增加一个远程服务器端,例如’git remote add origin git://github.com/someone/another_project.git’这条命令就会增加URL地址为’git: //github.com/someone/another_project.git’,名称为origin的远程服务器,以后提交代码的时候只需要使用 origin别名即可

2.2 正常工作流程

  1. 创建或修改文件
  2. git add命令添加新创建或修改的文件到本地的缓存区(Index),也就是git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。
  3. git commit命令提交当前工作空间到本地代码库,提交的时候必须用-m来输入一条提交信息。
  4. git push(可选,有的时候并没有可以同步的远端代码库)将本地代码库同步到远端代码库。

2.3 其他命令

  • git status:查看当前git仓库的状态
  • git diff –cached:查看缓存区中哪些文件被修改
    • 如果没有–cached参数,git diff 会显示当前你所有已做的但没有加入到索引里的修改。
  • git rm:从当前的工作空间中和索引中删除文件
  • git log:查看git log命令可以显示所有的提交(commit)
    • 如果用–stat选项使用’git log’,它会显示在每个提交(commit)中哪些文件被修改了, 这些文件分别添加或删除了多少行内容,这个命令相当于打印详细的提交记录:
    • 格式化日志输出。–pretty 参数可以使用若干表现格式,如oneline、short、medium、full、fuller、email 或raw
    • –graph 选项可以可视化你的提交图(commit graph),会用ASCII字符来画出一个很漂亮的提交历史(commit history)线:

3. 分支与合并命令

3.1 分支

  • git branch:对分支的增、删、查等操作

    • git branch + 分支名 可以创建一个叫 ‘分支名’ 的分支。
    • git branch 可以查看当前的分支列表,已经目前的开发环境处在哪个分支上
    • git branch -D 分支名 会强制删除叫做 ‘分支名’的分支
    • git branch -d 只能删除那些已经被当前分支的合并的分支
  • git checkout:在不同的branch之间进行切换

  • git merge:来合并分支到主线分支master

    • -m参数仍然是需要填写合并的注释信息。
    • 两个branch修改了两个不同的文件,所以合并时不会有冲突,如果两个分支修改了相同的文件,就会合并失败 ,使用git status查看状态,并手动解决冲突的流程。
  • git reset –hard HEAD^:如果想要放弃合并,使用该命令回到合并之前的状态

4. 比较内容

4.1 比较提交

  • git diff:比较修改的或提交的文件内容。命令输出当前工作目录中修改的内容,并不包含新加文件。通过git add * 将修改内容添加到本地缓存区,再执行git diff会发现没有任何内容输出,说明当前目录的修改都被添加到了缓存区,需要使用–cached参数查看缓存区内与上次提交之间的差别。

4.2 比较分支

  • git diff 分支名1 分支名2 :查看两个分支的差别。
  • git help diff:可以查看其他参数和功能。

4.3 其他选项

  • git diff file1 file2:加上路径限定符,来只比较某一个文件或目录
    • –stat 参数可以统计一下有哪些文件被改动,有多少行被改动。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值