所有的版本控制系统,其实只能跟踪文本文件的改动,而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化。
自行下载安装git,安装时按照默认勾选项一直点next就行了
(1)初始化新仓库:本地项目目录下,右键打开”Git Bash Here”,执行
$ git init
初始化后,当前目录下会创建名为.git的隐藏文件夹,执行
$ git add
$ git commit -m '
即可将文件或文件夹纳入版本控制,然后提交,-m后面输入的是本次提交的说明。
(2)克隆仓库:在需要创建仓库的目录下,打开“Git Bash”,执行
$ git clone [folder_name]
即可克隆远程仓库, 项目名称folder_name可缺省。
git add 命令是多功能命令,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区。
运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来,否则提交的是修订前的版本。
我们可以创建“.gitignore”文件,列出要忽略的文件模式,文件 .gitignore 的格式规范如下:
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配,glob 模式是指 shell 所使用的简化了的正则表达式。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
检查文件状态:可通过执行
$ git status
命令查看当前目录下文件状态,
查看已修改、暂存区、快照的差异:可以通过命令git diff [file]比较工作目录中当前文件 和暂存区域快照之间的差异
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff [file] --cached 或git diff --staged 命令。运行 $ git diff --staged或$ git diff --cached 后出现带 ”:” 的无法输入状态,按q键退出。
提交更新:使用*$ git commit*命令把暂存的文件提交,确保修改的文件都用$ git add暂存了,提交前先用$ git status检查
键入提交命令后,Git会打开编辑器,保存提交说明,关闭编辑器后,后它会告诉你,当前是在哪个分支(master)提交的,本次提交的完整 SHA-1 校验和是什么(5a57b1c),以及在本次提交中,有多少文件修订过,多少行添改和删改过。
每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。
跳过暂存区提交:在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤:
移除文件:可以用 git rm 命令从暂存区移除某个文件,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了(rm 命令仅删除)。
如果这个文件已经被修改且放入暂存区,则git rm 命令会提示错误可以选择
(1)$ git rm –f 强制删除文件
(2)$ git rm --cached
重命名:$ git mv file_from file_to
$ git log 由远及近地显示提交记录
$ git log –p <-n> 展示最近n次提交的差异
撤销提交:$ git commit –amend 撤销上一次提交,并用当前暂存区快照重新提交。
撤销暂存:$ git reset HEAD
撤销修改:$ git checkout –
版本回退:$ git reset --hard
查看每次命令:$ git reflog 命令可以查看每一次的命令。
在github上添加SSH Key:第1步创建SSH Key:$ ssh-keygen -t rsa -C [email protected](把邮件地址换成你自己的邮件地址)然后一路回车,使用默认值即可,然后在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。第2步:登陆GitHub,打开“Settings”,“SSH and GPG Keys”页面:然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。
添加远程仓库:$ git remote add [shortname] [url],这里的url是github对应仓库的域名加上 ‘.git ‘
查看远程仓库:$ git remote [-v] 命令可以查看当前的远程仓库(和地址)
本地库推送到远程库:$ git push –u origin master,加上了-u参数,会把本地的master分支和远程的master分支关联起来
从远程库获取数据:$ git fetch [remote-name],此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支
查看远程仓库信息:$ git remote show [remote-name]
远程仓库的删除和重命名:
$ git remote rename
$ git remote rm
创建分支:$ git branch
切换分支:$ git checkout
查看分支:$ git branch 带的是当前分支
合并分支:$ git merge
删除分支:$ git branch –d
因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支。$ git branch –D
分支策略:首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
bug分支:在开发中需要临时修复bug时,可以用命令$ git stash命令保存工作区(仅保存已跟踪文件),然后在新分支中修复bug,在回到开发分支用命令$ git pop恢复工作区
推送分支:$ git push origin
协同开发:其他开发者的最新推送和自己的推送发生冲突时,先用git pull合并他人的提交(并解决冲突),然后再推送,如pull失败(提示no tracking information),则先指定本地dev分支与远程origin/dev分支的链接(按提示操作)
创建标签:在需要标签的分支上,敲命令 $ git tag
查看标签:可以用命令 $ git tag 查看所有标签
推送标签:创建的标签只存储在本地,不会自动推送到远程,git push origin
删除标签:$ git tad –d 命令用于删除标签,若还需要删除远程标签,$ git push origin :refs/tags/