Git 快速入门学习笔记

Git 快速入门学习笔记

  • 下载安装
  • 创建本地仓
  • 文件状态与更新
  • 查看提交历史
  • 撤销操作
  • 远程仓库的使用
  • 分支
  • 标签管理

所有的版本控制系统,其实只能跟踪文本文件的改动,而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化。

下载安装

自行下载安装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 快速入门学习笔记_第1张图片

git add 命令是多功能命令,可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区。
运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来,否则提交的是修订前的版本。

我们可以创建“.gitignore”文件,列出要忽略的文件模式,文件 .gitignore 的格式规范如下:

所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配,glob 模式是指 shell 所使用的简化了的正则表达式。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

检查文件状态:可通过执行

$ git status

命令查看当前目录下文件状态,
Git 快速入门学习笔记_第2张图片
查看已修改、暂存区、快照的差异:可以通过命令git diff [file]比较工作目录中当前文件 和暂存区域快照之间的差异
Git 快速入门学习笔记_第3张图片
若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff [file] --cached
git diff --staged
命令。运行 $ git diff --staged或$ git diff --cached 后出现带 ”:” 的无法输入状态,按q键退出。
Git 快速入门学习笔记_第4张图片

提交更新:使用*$ 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 仓库(和暂存区)中删除,但仍然保留在当前工作目录中
重命名
$ git mv file_from file_to

Git 快速入门学习笔记_第5张图片

查看提交历史

$ git log 由远及近地显示提交记录
$ git log –p <-n> 展示最近n次提交的差异

撤销操作

撤销提交$ git commit –amend 撤销上一次提交,并用当前暂存区快照重新提交。
撤销暂存$ git reset HEAD 取消暂存文件
撤销修改$ git checkout – 取消对文件的修改,即用版本库里的版本替换工作区的版本,会丢失修改内容。
版本回退$ git reset --hard 将仓库会退到对应commit_id的版本,commit_id 可在git log 查看,HEAD代表当前版本,HEAD^、HEAD^^、HEAD~n 分别代表上一个版本、上上个版本、上n个版本。回退之后用$ git log查看提交记录只能看到当前版本前面的提交记录,最新的提交记录无法查看。
查看每次命令$ git reflog 命令可以查看每一次的命令。
Git 快速入门学习笔记_第6张图片

远程仓库的使用

在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 快速入门学习笔记_第7张图片
本地库推送到远程库$ 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 checkout –b 创建并切换分支
查看分支$ git branch的是当前分支
Git 快速入门学习笔记_第8张图片
Git 快速入门学习笔记_第9张图片
合并分支
$ git merge * 将指定分支合并到当前分支,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。若发生冲突,需要手动编辑解决冲突后提交,git 会在文本中用<<<<<<<,=======,>>>>>>>标记出不同分支的冲突内容
删除分支$ 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 ,就可以在最新提交的commit上打一个标签,如果要在历史提交上打标签,在$ git log 中找到对应的commit id,$ git tag 即可打标签
查看标签:可以用命令 $ git tag 查看所有标签
推送标签:创建的标签只存储在本地,不会自动推送到远程,git push origin [或tags] 将[全部]标签推送到远程
删除标签$ git tad –d 命令用于删除标签,若还需要删除远程标签,$ git push origin :refs/tags/

你可能感兴趣的:(开发工具,git)