Git(分布式版本控制系统)
参考:一个小时学会Git
Git Bash(Unix / Linux风格的命令行)
cd # 改变目录(斜杠)
文件命令:
$ git init # 在当前目录,即工作区(Workspace)下创建git版本库(Repository),即得到.git目录,存放版本信息
$ git status [file] # 查看文件状态
$ git add [file] / . # 将指定文件/当前目录下的所有文件添加到版本库的暂存区(Stage / Index),自动创建第一个分支master(主分支,最开始即为当前分支,指向当前提交),以及指向master的指针HEAD(总是指向当前分支,即关联最新提交的版本,HEAD^前一个版本,HEAD~n前n个版本)(HEAD→当前分支→最新提交),参与版本控制,文件状态由Untracked(未跟踪)变为Staged(暂存)
$ git rm [file] #将文件移出暂存区(撤销add),回到Untracked,工作区不受影响
$ git checkout [file] / . # 工作区被暂存区替代
$ git commit [file] # 将文件从暂存区提交到版本库(对象库)中,更新当前分支
$ git diff [file] # 查看文件在工作区与暂存区的差异
$ git commit -a # 提交工作区自上次commit后的修改,直接到版本库
$ git log --graph # 查看提交日志(图形表示)
分支命令:
$ git branch # 查看所有分支
$ git branch [branch] # 新建一个分支(与当前分支指向相同的提交)(理解:相当于建立一个存档备份)
$ git checkout -b [branch] # 新建一个分支,当前分支切换到该分支(HEAD指向该分支)(理解:可通过提交对该分支进行修改)
$ git branch [branch] [commit] # 新建一个分支,指向指定commit
$ git reset branch [file] / . # 暂存区被分支替代,工作区不受影响
$ git checkout [branch] [file] / . # 当前分支切换到指定分支(-表示上一个分支),暂存区和工作区被该分支替代
$ git merge [branch] # 合并指定分支到当前分支
$ git branch -d [branch] # 删除分支
分支策略:master主分支用来发布新版本,在新建分支上进行修改(理解:将新建分支切换为当前分支,则新的提交就会提交到该分支上),修改完成后合并到主分支。
远程命令:
$ git remote # 查看所有远程主机
$ git clone -o [remote] [版本库网址] # 从远程主机克隆一个版本库
$ git fetch [remote] [branch] # 获取远程分支的更新(即commit),不影响本地分支
$ git pull [remote] [branch]:[branch] # 获取远程分支的更新,并与本地分支合并
$ git push [remote] [branch]:[branch] # 推送本地分支的更新到远程主机