- 哦!首先你得去注册github
- 然后,创建一个仓库,这个时候页面上会出现这样的一些命令
#创建readme文件,告诉别人你在这个仓库做什么,应该如何使用仓库的资源
echo "# for-git-task" >> README.md
#当你运行这句话的时候,初始化版本库。你将会有一个.git文件
git init
#将readme文件添加到暂存区
git add README.md
#把暂存区的内容提交到本地仓库,并且这次提交有个名称是“first commit”
git commit -m "first commit"
#这里就是要添加提交的地址
git remote add origin git-url
#把本地仓库推送到远程仓库的master分支上
git push -u origin master
- 还有吗?
- 有,请看下面!
git 的三棵树
- 实际工作的目录
- 缓存区
- Head (指向最后一次提交的结果)
分支
git默认的分支是master,但是git允许我们创建自己的分支。
git checkout -b newBranch
创建一个名为 newBranch的分支,并切换到该分支下
git checkout 分支名(master || newBranch)
分支的切换,只需要像这样加上你想要到的分支名就可以了。
git branch -d 分支名
删除分支就是如此简单
注意
如果我们没有执行
git push origin 分支名
那么这个分支别人就无法看见,当然在浏览器GIT分支选项中也是不存在的。
- 可是我们要分支干嘛呢?
- 分支就好比给我们开了另外的工作空间,你可以在不损坏主分支代码的情况下,将代码提交到其他分支上。如果这个分支的代码ok,那么我们还可以将分支代码merge到主分支上。
想想看,有了分支,是不是会对团队合作有帮助呢!
更新与合并
在这个部分一般当我们团队合作的时候发生的频率会高一些。
分支的合并:
我在master分支下执行
git merge 分支名
将分支上的改动合并到主分支上
本地仓库的更新:
git pull
在你的工作目录中 获取(fetch) 并 合并(merge)远端的改动。
冲突
是的,相信对许多人来说,解决冲突真是一种不美好的经历。
因为这往往需要
- 人肉合并!
- 频繁的切换分支,很多时候都会忘记切换分支
git 后悔药
- 如果我们操作有误,可以使用如下命令替换掉本地改动:
git checkout -- <filename>
将使用 HEAD 中的最新内容替换掉你的工作目录中的文件。
已添加到缓存区的改动,以及新文件,都不受影响。
- 如果我们想要丢弃所有的本地改动与提交,可以到服务器上获取最新的版本并将本地主分支指向到它:
git fetch origin
git reset --hard origin/master
- 如果我们不得不删掉某些文件
git rm 文件名1 文件名2 …
删除工作区文件,并且将这次删除放入暂存区
- 如果我们在修改文件途中需要临时返回之前的状态,但是所做的修改又不能丢掉执行
git stash
Stash只会将修改过的,且已被跟踪(在暂存区中)的文件放入栈中,
但是对于那些新添加的还未跟踪(不在暂存区中)的文件,它并不会进行处理。
当我们需要将之前的修改取回
git pop
git 行为记录
Log
git log命令可以查看以往仓库中提交的日志。包括可以查看某个时间点以来,最近指定次数的提交,或是指定文件或目录的变更历史等。
非常有用滴!特别是使用git出错的时候,它可以帮我们很多。
git 资源
本文未完待续…