git的使用
1.git的四个区域:
2.常规git命令
git status 查看working directory哪些文件被更改了
git add .
把更改add到staging area,缓存的地方。改一个地方可以就先暂存一下,最后确认是哪些改动后再一起commit,以免不必要的版本。
在暂存区域,如果发现有不想要的改动,可以把它从staging area中踢出来,就不用去提交,如果你提交的话,就会在仓库里面去,在某个版本上我不想要这个改动,那么需要去做revert操作,就比较麻烦,所以就需要暂存区域来保存我们当前一个临时的改变。
git commit -m "***"
git push origin master 推送到对应的远程主机远程分支
3.切换分支
切换分支的时候必须保证我们当前的分支的所有操作是commit的,就是已经产生在我们的版本库里去了,不然的话所有的改变会丢失。
而且你在切换的时候它会提醒你你有改动的东西没有commit,让你commit之后再去切换分支。
如果不想做commit这个提交,然后要去切换的话,可以使用git stash命令,这个命令会把所有的我们当前分支的改变暂存到另外个地方去(working里面)。
让你当前分支的状态保持一个没有更新的状态,从而可以切换到另外个分支上去。当你到另外个分支上去做完你的事情后再切换回来,再通过git stash这个命令把之前我暂存起来的先返回回来再继续操作。
命令:
git stash
git stash pop
4.git clone
clone之后默认会有一个master branch,会直接checkout到我们的master分支上去。创建一个分支的话,它是以我们当前指向分支的最新版本去拉一个分支。想在哪个版本上去创建分支直接把它的commit ID附上就可以了。就可以随时在某一个分支上去拉。
change了branch之后,HEAD就会改变,就会指向当前的分支。commmit了之后,HEAD也会跟着移动。
5. Git Commands
git clone <url>
git status
git log //version tree,可以查看当前branch在我们这个仓库里面的历史信息
gitk & //可视化工具查看version tree
git fetch origin ; git fetch origin master
git checkout master //切换分支到哪个分支
git checkout -b <分支名>;//创建分支并切换分支
git checkout file 取消对某个包的改动
git pull //将远端的更新merge到本地。
git pull ==> git fetch + git merge
git push origin HEAD:master //git push前最好git pull一下,确保是基于最新的
git stash
git stash pop
git branch -r //lists local branches and their corresponding upstream branches
git branch -vv //列出本地仓库和远程仓库的关联关系
git reflog
6.gitignore文件
.gitignore 文件,可以实现选择性的上传文件到远程仓库而不是把本地仓库的所有代码都上传。
.gitignore会忽略 folderName 文件和 folderName 目录,会自动搜索多级目录。
7.git cherry-pick
8.git submodule update
.gitmodule文件中定义了module对应的url。
每个子模块都处于“分离头”状态。
待继续:git submodule update和git pull的关系。