Git的三种状态
![](https://img.haomeiwen.com/i16295814/df6ea2258159d4ce.png)
(1)已暂存(staged),将已修改的文件放在下次提交(提交至本地仓库)时要保存的清单中,即暂存区里。
(2)(添加了文件之后)已修改(modified)某个文件,但还没有提交保存
(3)已提交(committed)该文件,已经被安全地保存在本地数据库中了
操作
初次使用,需要设置姓名和邮箱
$ git config --global user.name "你的名字"
$ git config --global user.email johndoe@example.com
![](https://img.haomeiwen.com/i16295814/c3146661b138dcdc.png)
clone一个项目
用于把一个已有的github项目clone(下载)到本地变为本地仓库
git clone git@github.com:jirengu/blog.git
cd clone
添加文件并提交【本地库↔远程库】
创建文件
touch a.md //(或者直接打开本地仓库目录新建文件)
由于刚才的文件是空文件,通过一个命令在文件中写入一个字符串
echo "hello" > a.md
![](https://img.haomeiwen.com/i16295814/eaf453242e3dffac.png)
查看仓库状态
git status
untracked files(未跟踪)、nothing added to commit(还没添加文件在暂存区去等待本地提交),并提示怎么做:(use "git add" to track)
![](https://img.haomeiwen.com/i16295814/53a9add06271028b.png)
把当前文件夹下的新增和删除全部放在暂存区
git add .
#再次查看:
git status
![](https://img.haomeiwen.com/i16295814/8e834a86f3384537.png)
把暂存区的更新提交到本地库
git commit -am"add file"
再次查看:
git status 提示push
![](https://img.haomeiwen.com/i16295814/448f1766d030db40.png)
推送远程仓库
把当前本地仓库的改动推送到远程仓库上
git push origin master
![](https://img.haomeiwen.com/i16295814/7af10c364f4ba9c0.png)
![](https://img.haomeiwen.com/i16295814/9f123b4695320d27.png)
修改、删除文件【远程库↔本地库】
(1)#把远程库拉下合并(merge)到本地仓库
git pull
(2)#修改文件
vim a.md
![](https://img.haomeiwen.com/i16295814/3fd3295b31f55386.png)
#删除文件
rm -rf a.md$ git add .
![](https://img.haomeiwen.com/i16295814/7d303c87ea17e65c.png)
(3)#添加文件至暂存区
git add .
(4)#提交至本地库
git commit -am "字符串" //注:这里需要注意的是如果提交消息包含大量字符串,提交参数不用加m
(5)#推送远程库
git push origin master
5、多人协作
(1)有一人在远程修改文件,你不知道仍继续在终端修改提交文件
touch b.md
git add .
git commit -am "add b"
git push
![](https://img.haomeiwen.com/i16295814/5e9a04574f78b522.png)
被多人协作过的远程库拉下本地更新一下,即执行:
git pull
(4)自动将更新后的远程库拉回来,并merge(合并)你所更新的文件,进入一个vim编辑器,编辑需要更新的文件
vim b.md
(5)你要怎么样都可以,不想干嘛就保存退出,不再说vim的使用方法了。赶紧看下一步:
git add .
git commit -am "merge"
git push
总结
![](https://img.haomeiwen.com/i16295814/ae884abda735fd05.png)
:每一次在本地库完成自己的文件更新,都需要git pull一下,让远程库在本地与你的文件合并(merge),在推送(push)
网友评论