Git程序员

Git基础

2017-04-05  本文已影响76人  噫那里有条咸鱼


Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。


Git与SVN区别


文章目录

一、Git安装配置
二、Git基本操作
三、Git分支管理
四、Git.远程仓库


一、Git安装配置

Git目前支持Mac、Windows、Linux/Unix和Solaris平台。
各平台安装包下载地址:http://git-scm.com/downloads

Windows平台安装

下载安装包之后根据提示进行安装



安装完成后就可以使用命令行的git工具了(自带ssh客户端),和一个带图像界面的git项目管理工具(Git GUI)。
可以通过桌面图标或者开始菜单找到->"Git"->"Git Bash",点击会弹出Git命令窗口,可在该窗口进行Git操作。


Mac平台下的安装

1.下载git客户端,地址:https://git-scm.com/download/mac
mac平台下的图像化git安装工具,地址:http://sourceforge.net/projects/git-osx-installer/

2.打开安装包,进行安装。



Linux平台安装

Linux操作系统git安装命令参考:https://git-scm.com/download/linux

$ apt-get install git

安装过程需要输入几次y+回车,之后等待自动下载安装。


二、Git基本操作

配置用户信息

git config --global user.name "XXX"
git config --global user.email xxxx@gmail.com

--global:添加了此命令,那么更改的配置文件就是位于用户主目录下的,以后的项目都将默认使用此用户信息。若需要为某个项目使用其他用户信息,只需要去掉--global重新配置即可,新的配置保存在当前项目的.git/config中。

git config --list   //也可以将--list换为具体的某个环境变量如:user.name

创建仓库

Git的很多命令都需要在Git仓库中运行,所以我们最先做的就是创建一个仓库。

git init
git init newrepo
git add *.c                    //将以.c结尾的文件提交到仓库
git add README                 //将README文件提交到仓库
git commit -m '初始化项目版本'

克隆仓库

使用git clone命令从现有Git仓库中拷贝项目,类似于svn checkout。

git clone <repo>                //repo:Git仓库地址
git clone <repo> <directory>    //directory:本地目录

基本快照

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

git status
git status 可以查看在你上次提交之后是否有修改。

git status -s                  //-s:简短输出

??: 未添加到缓存
A: 已添加到缓存
M: 有改动
AM: 添加到缓存后又有改动

git diff
git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是啥。

git diff            //尚未缓存的改动
git diff --cached   //已缓存的改动
git diff HEAD       //已缓存和未缓存的所有改动
git diff --stat     //显示摘要

git commit
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。

git commit -m '第一次提交版本'   

-m:提交注释,如果不设置-m选项,那么git会尝试打开一个编辑器以填写提交信息,默认vim。效果如下:


git commit -a
git commit -am '第二次提交版本'

git reset HEAD
git reset HEAD 命令用于取消已缓存的内容。

git reset HEAD    //也可以使用 --文件名 的形式指定具体文件

git rm
git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 git reset HEAD是将缓存区恢复为做出修改之前的样子。git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。

git rm --cached 文件名

git mv
git mv 命令做得所有事情就是 git rm --cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。

git mv 原文件名 修改后文件名

三、Git分支管理

几乎每种版本控制系统都支持类似的分支,使用分支从开发主线中分离,在不影响主线的同时继续工作。Git的分支模型是最赞的

git branch (branchname)
git checkout (branchname)

切换分支时,Git会用该分支最新的快照替换工作目录的内容,所以多个分支只需要一个目录。

git branch        //没有参数时,会列出本地的分支

当执行git init 时,Git会默认创建"master"分支。
当我们创建了一个分支,在该分支的的上下文中新增删除了一些文件后,切换回主分支,那些修改的东西都不见了。
使用分支就可以让我们在不同的上下文中工作,来回切换,而不影响主线。

git branch -d (branchname)
git merge

合并冲突
合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。
我们可以在master分支中创建文件test.txt,并写入github.com,提交到仓库。
然后创建一个change_site分支,并切换过去。

git branch change_site
git checkout change_site

修改test.txt文件内容为 https://github.com ,提交后切换回master分支。

git commit -am 'merge test 1'
git checkout master

将change_site分支合并到master分支。

git merge change_site

此时会提示我们文件冲突,需要我们手动修改。



修改完成后可以通过git add告诉Git文件冲突已解决。

git add test.txt
git commit

Git查看提交历史

在提交了多次更新后,想要查看提交历史,可以使用以下命令:

git log

输出结果:


查看历史记录简介版本:

git log --oneline

输出结果:


使用--graph查看什么时候出现了分支、合并:

git log --oneline --graph

输出结果:


其他log命令:https://git-scm.com/docs/git-log

--reverse 逆向显示日志
--author 指定具体某一个作者
--since 和 --before 指定日期
--decorate 查看标签


Git 标签

如果你想要记住或标记某个重要的快照,就可以使用标签。

git tag -a v2.0
git tag -a v1.0 64ff8e3    //64ff8e3是上图日志最后一行

快速指定标签信息:

git tag -a v3.0 -m 'author:噫那里有条咸鱼'

四、Git远程仓库(Github)

添加远程仓库

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:

1.创建ssh

mkdir key_backup
mv id_rsa* key_backup
ssh-keygen -t rsa -C xxxx@gamil.com   //注册的main邮箱

执行后终端会显示

2.将ssh key添加到github上

3.测试链接是否成功

配置成功后SSH会由黑色变为绿色。


4.New repository(新建仓库)
登录Github点击New repository,之后在repository name填入test(远程仓库名),其他设置默认即可,之后点击Create repository,就成功创建了一个Git仓库。

5.本地上传文件到远程库
依次执行以下命令:

mkdir test                                        //创建测试目录
cd test                                           //进入测试目录    
echo "git测试" >> README.md                   //创建README.md文件并写入内容
git init                                          //初始化
git add README.md                                 //添加文件到缓存
git commit -m "添加 README.md 文件"                //提交并添加备注
git remote add origin git@github.com:账户名/仓库名  //提交到远程仓库
git push -u origin master 

查看远程库

实例:-v参数—— 查看每个别名的实际链接地址

$ git remote       
origin
$ git remote -v    
origin  https://github.com/账户名/test (fetch)
origin  https://github.com/账户名/test (push)

提取远程仓库

git fetch
git pull

当我们需要提取更新的数据,可以先执行 git fetch[别名]让Git去获取本地没有的数据,然后执行git merge[别名]/[branch]将更新的数据合并到当前分支。

实例:
通过在线修改README.md文件:

在本地提取更新:


将更新同步到本地:


查看README.md文件内容:


删除远程仓库

git remote rm [别名]

实例:

新建仓库origin2:git remote add origin2 git @github.com:别名/test
查看仓库:git remote -v
删除仓库origin2:git remote rm origin2


Git命令练习:点我


2017-04-07 施工ing

上一篇下一篇

猜你喜欢

热点阅读