git命令从0开始

在Linux上安装Git

首先,输入命令git,看看系统有没有安装Git:
git --version

安装git命令
Debian或Ubuntu Linux 的可以用 sudo apt-get install git-core
CentOS 就可以使用yum命令来安装 yum -y install git

安装成功
git --version 就可以来看git的版本号

在Windows上安装Git

msysgit是Windows版的Git,从http://msysgit.github.io/下载,然后按默认选项安装即
可。
安装完成后,在开始菜单⾥里找到“Git”->“Git Bash”,蹦出⼀一个类似命令⾏行窗口的东西,就说明Git安装成功!

安装完成后,还需要最后⼀一步设置,在命令⾏行输⼊入:
$ git config --global user.name “Your Name”
$ git config --global user.email “email@example.com”

创建版本库

创建⼀个版本库非常简单,首先,选择⼀个合适的地方,创建一个空目录:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

pwd命令⽤用于显示当前目录
如果你使⽤用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目
录)不包含中文。

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

命令操作

第⼀步,⽤用命令 git add 告诉Git,把文件添加到仓库:
$ git add readme.txt

第二步,⽤用命令 git commit 告诉Git,把⽂文件提交到仓库:
$ git commit -m "wrote a readme file"

重复第一步 进行多次添加 再执行第二步也是可以的。

$ git status 查看仓库的状态

大致分为三种:
1.对文件进行修改并未执行添加操作 **$ git add **时
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working
directory)
modified: readme.txt
no changes added to commit (use “git add” and/or "git commit

$ git diff xxx.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf…9247db6 100644
— a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.

2.对文件已经进行修改,并且已经执行 git add xxx.txt 添加完成操作后,但未进行提交

$ git status
#On branch master
#Changes to be committed:
#(use “git reset HEAD …” to unstage)

#modified: readme.txt

git status 告诉我们,将要被提交的修改包括xxx.txt

3.执行提交完成操作

$ git commit -m "第一次提交"
#[master ea34578] add distributed
#1 file changed, 1 insertion(+), 1 deletion(-)

$ git status
#On branch master
nothing to commit (working directory clean)

Git 告诉我们当前没有需要提交的修改,而且工作目录干净的

版本回退

$ git log
commit 3628164fb26d48395383f8f31179f24e0882e1e0
Author: Michael Liao askxuefeng@gmail.com
Date: Tue Aug 20 15:11:49 2013 +0800
append GPL
commit ea34578d5496d7dd233c827ed32a8cd576c5ee85
Author: Michael Liao askxuefeng@gmail.com
Date: Tue Aug 20 14:53:12 2013 +0800
add distributed
commit cb926e7ea50ad11b8f9e909c05226233bf755030
Author: Michael Liao askxuefeng@gmail.com
Date: Mon Aug 19 17:51:55 2013 +0800
wrote a readme file

从上到下 最近的一次提交到最远的一次。

$ git reset --hard HEAD^ 回退到上一个版本
HEAD is now at ea34578 add distributed

$ git reset --hard cb926e7ea50ad11b8f 回退到指定版本号的版本
HEAD is now at 3628164 append GPL

$ git reflog
ea34578 HEAD@{0}: reset: moving to HEAD^
3628164 HEAD@{1}: commit: append GPL
ea34578 HEAD@{2}: commit: add distributed
cb926e7 HEAD@{3}: commit (initial): wrote a readme file
查看git每次提交的日志

撤销修改

$ git checkout – xxx.txt

命令 git checkout – readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销,这
⾥里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一
样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存
区后的状态。
总之,就是让这个文件回到最近一次 git commit 或 git add 时的状态。

$ git reset HEAD xxx.txt

git reset 命令既可以回退版本,也可以把暂存区的修改回退到⼯工作区。当我们⽤用HEAD时,
表⽰示最新的版本。

删除文件

**$ git rm xxx.txt **
rm ‘test.txt’

$ git commit -m "remove test.txt"
[master d17efd8] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
现在,文件就从版本库中被删除了。

$ git checnkout – xxx.txt

git checkout 其实是⽤用版本库⾥里的版本替换⼯工作区的版本,⽆无论⼯工作区是修改还是删除,都
可以“⼀一键还原”。

远程仓库

第一种情况你在本地文件夹没有关于git的任何关联

$ git init就是初始化仓库,创建本地仓库。

$ git remote add origin git@github.com:michaelliao/learngit.git 让本地仓库与远程仓库产生关联

$ git pull 这样就可以让远程仓库与本地仓库保持一致

第二情况

在任意目录下克隆 $ git clone http://192.168.120.30/git_study_demo/git_learn.git

这样也可以让远程仓库与本地仓库保持一致

创建与合并分支并推送

$ git checkout -b dev 创建dev分支,并切换到dev分支,相当于下面

$ git branch dev 创建dev分支

$ git checkout dev 从当前切换到dev分支

$ git branch 查看该仓库的所有的分支

$ git merge dev 把分支的工作成果合并到master分支上

合并完成,就可以删除分支了

$ git branch -d dev 删除dev分支

$ git push origin fat 推送到远程仓库的fat分支上

拉取并指定分支

$ git clone http://192.168.120.30/git_study_demo/git_learn.git

$ git checkout -b dev origin/dev 切换到指定分支

推送指定分支

$ git push origin dev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值