git组成
工作区 —》暂存区—》git仓库
初始化一个git仓库
第一种,创建目录并初始化git仓库到目录
git init myweb
第二种
mkdir myweb
cd myweb
git init
添加文件到git暂存区
一、
[root@lsh myweb]# git add . #全部添加
[root@lsh myweb]# git add index.html #添加指定文件
A index.html #已经添加
?? passwd #未添加
二、先忽略不想添加的文件,然后全部添加
[root@lsh myweb]# vim .gitignore
.gitignore
passwd
[root@lsh myweb]# git add .
[root@lsh myweb]# git status -s
A index.html
[root@lsh myweb]# git commit -m 'first commit'
删除暂存区的文件
[root@lsh myweb]# git rm --cached index.html
rm 'index.html'
[root@lsh myweb]# git status -s
?? index.html
删除git仓库的文件
[root@lsh myweb]# git ls-files
index.html
[root@lsh myweb]# git rm index.html
rm 'index.html'
[root@lsh myweb]# git status -s
D index.html
恢复错删的git仓库文件
[root@lsh myweb]# git status
# 位于分支 master
# 要提交的变更:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 删除: index.html
#
[root@lsh myweb]# git reset HEAD index.html
重置后撤出暂存区的变更:
D index.html
[root@lsh myweb]# git status -s
D index.html
[root@lsh myweb]# git checkout -- index.html
[root@lsh myweb]# git ls-files
index.html
[root@lsh myweb]# git status
# 位于分支 master
无文件要提交,干净的工作区
通过log日志恢复git仓库删除的数据
(确保工作区处于干净的状态)
[root@lsh myweb]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@lsh myweb]# git ls-files
查看日志
[root@lsh myweb]# git log
commit 5a289385dd35ceb24afc80df262c09bef9f9ad15
Author: root <root@lsh.localdomain>
Date: Tue Feb 25 11:26:03 2020 +0800
first
[root@lsh myweb]# git checkout 5a289385dd35ceb24afc80df262c09bef9f9ad15
[root@lsh myweb]# ls
index.html
修改名字
[root@lsh myweb]# cp /etc/hosts .
[root@lsh myweb]# git add hosts
[root@lsh myweb]# git commit -m 'add hosts'
[root@lsh myweb]# git mv hosts zhuji
[root@lsh myweb]# git status -s
R hosts -> zhuji
[root@lsh myweb]# git commit -m 'mv hosts zhuji'
[root@lsh myweb]# git ls-files
zhuji
分支管理
当需要把一个需求交给某个人,就可以创建新的分支,代码在分支中完成。当分支完成在汇聚到主干中去。
[root@lsh myweb]# git branch
* (分离自 5a28938)
master
创建分支
# 创建分支b1
[root@lsh myweb]# git branch b1
[root@lsh myweb]# git branch
b1
* master # 有*号的,表示当所处分支
#在master提交代码
[root@lsh myweb]# cp /etc/hosts .
[root@lsh myweb]# git add .
[root@lsh myweb]# git commit -m 'add hosts'
[root@localhost myweb]# ls
shadow
hosts
#b1分支提交代码
# 在b1分支提交代码
[root@lsh myweb]# git checkout b1 # 切换分支
[root@lsh myweb]# git branch
* b1
master
[root@lsh myweb]# ls # 没有hosts文件
shadow
[root@lsh myweb]# cp /etc/issue .
[root@lsh myweb]# git add .
[root@lsh myweb]# git commit -m "add issue"
[root@lsh myweb]# ls
issue shadow
# 将b1分支汇入到主干master
[root@lsh myweb]# git checkout master
[root@lsh myweb]# ls
shadow hosts
[root@lsh myweb]# git merge b1 -m "Merge branch b1"
[root@lsh myweb]# ls
shadow hosts issue
[root@lsh myweb]# git branch -d b1 # 删除不需要的分支
[root@lsh myweb]# git branch
* master