安装
在Fedora/CentOS下安装
$ sudo yum install git
在Debian/Ubuntu Linux下载安装
$ sudo apt-get install git
Windows/Mac下要先下载,下载地址https://git-scm.com/downloads
在gui环境下安装,安装过程略。
设置环境变量
git config --global user.name “wsh”
git config --global user.email “tech@wangshenghua.com”
git config --global push.default simple
git config --global color.ui.auto
git config --global color.branch auto
git config --global color.status auto
git config --global user.name “wsh” 设置用户名
git config --global user.email “tech@wangshenghua.com” 设置email
git config --global push.default simple 设置工作流程模式
simple表示在中央仓库工作流程模式下,拒绝推送到上游与本地分支名字不同的分支。也就是只有本地分支名和上游分支名字一致才可以推送,就算是推送到不是拉取数据的远程仓库,只要名字相同也是可以的。在git 2.0中,simple将会是push.default的默认值。
git config --global color.ui.auto 设置ui颜色自动高亮
git config --global color.branch auto 设置分支颜色自动高亮
git config --global color.status auto 设置状态颜色自动高亮
查看设置的环境变量
git config --list
Git 生命周期
生命周期的本质是工作流程。Git工作流程如下:
1.从仓库中克隆一个副本作为工作库;
2.添加修改副本中的文件;
3.可选,同步其他人员修改过的工作库;
4.提交之前查看更改;
5.提交更改,将更改推送到存储库;
6.提交之后,如果有问题,则更正上次提交并将更改推送到存储库。
Git 初始仓库
1、新建一个目录
mkdir testgit
2、进入新建的目录
cd testgit
3、初始化仓库
git init
结果
初始化空的 Git 版本库于 /home/wsh/testgit/.git/
Git 添加文件
向仓库添加文件只要3步
1、添加文件,复制文件到testgit目录下
2、执行git add 文件名 命令
git add Hello.txt
3、执行提交命令
git commit -m “first commit”
运行结果
[master(根提交) fc56011] first commit
1 file changed, 1 insertion(+)
create mode 100644 Hello.txt
Git 查看更改
1、查看状态
git status
结果
位于分支 master
无文件要提交,干净的工作区
2、查看日志
git log
结果
commit fc5601107240aae6dd592230c9c3ebb3d6ce8ab5
Author: wsh tech@wangshenghua.com
Date: Fri May 18 21:33:35 2018 +0800
first commit
3、以图形方式查看
git log --graph --oneline
- 117adf3 删除 hello.txt
- 7c1b9ee 添加 hello.txt
- 1d54d92 Initial commit
Git 克隆
示例,从github上克隆一个仓库
git clone https://github.com/nhnent/tui.editor.git
运行结果
正克隆到 ‘tui.editor’…
remote: Counting objects: 20330, done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 20330 (delta 14), reused 7 (delta 3), pack-reused 20296
接收对象中: 100% (20330/20330), 16.92 MiB | 3.60 MiB/s, done.
处理 delta 中: 100% (14246/14246), done.
Git 推送
克隆一个github上有读写权限的仓库。
这里切换到有github上项目读写权限的账号进行克隆
git clone https://github.com/xxx/gitDemo.git
正克隆到 ‘gitDemo’…
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
2、进入网刚克隆到本机的目录
cd gitDemo
3、在里面建立一个文件 hello.txt,内容随意写
vi hello.txt
4、添加文件到staging area
使用命令git add 文件名,文件名可以采用通配符*
git add hello.txt
5、提交,使用git commit 命令
使用形式如下:git ommit -m “提交说明”
git commit -m “添加 hello.txt”
[master 7c1b9ee] 添加 hello.txt
1 file changed, 1 insertion(+)
create mode 100644 hello.txt
6、推本机更换到远程仓库
使用git push命令
git push
Username for ‘https://github.com’: # 这里要输入github账号
Password for ‘https://xxx@github.com’: # 这里要输入github账号密码
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 294 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/xxx/gitDemo.git
1d54d92…7c1b9ee master -> master
[root@localhost gitDemo]#
Git 删除文件
1、使用删除命令删除文件
git rm 要删除的文件
git rm hello.txt
rm ‘hello.txt’
2、更新到临时区
git commit -m “删除 hello.txt”
[master 117adf3] 删除 hello.txt
1 file changed, 1 deletion(-)
delete mode 100644 hello.txt
3、push到远程仓库
git push
Username for ‘https://github.com’: # 此处输入github账号
Password for ‘https://xxx@github.com’: # 此处输入github账号密码
Counting objects: 3, done.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (2/2), 242 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To https://github.com/xxx/gitDemo.git
7c1b9ee…117adf3 master -> master
Git 更新
在向远程仓库推送之前,为避免冲突,通常会先从远程仓库更新,再添加文件,再commit到staging area,最近push。
更新使用命令git pull
git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
来自 https://github.com/xxx/gitDemo
117adf3…90033cd master -> origin/master
更新 117adf3…90033cd
Fast-forward
newText | 1 +
1 file changed, 1 insertion(+)
create mode 100644 newText