git 的根本使用

打印 上一主题 下一主题

主题 1867|帖子 1867|积分 5601

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、创建仓库并初始化

1、操纵步骤


  • 创建仓库:使用 mkdir 下令创建目录,比方 mkdir /Users/xiao/pro。
  • 初始化仓库:进入创建的目录,使用 git init 下令初始化,使该目录可被 Git 管理,如 cd /Users/xiao/pro 后执行 git init。
2、留意事项


  • 版本库概念:版本库(仓库,repository)可明确为一个目录,此中所有文件的修改、删除等操纵都能被 Git 跟踪,方便追踪历史和还原。
  • .git 目录:在仓库目录下执行 git init 后会天生隐蔽的 .git 目录,用于跟踪管理版本库,不要手动修改此中文件,否则会破坏 Git 仓库。
  • Windows 系统:为避免标题,确保目录名(包罗父目录)不包含中文。
  • 下令执行位置:后续的 git 下令需在仓库目录下执行。
二、工作区与版本库

1、Git 管理文件类型

Git 主要管理文本文件,对文本文件的改动跟踪结果好,能准确记载每行的修改。而对于图片、视频等二进制文件,虽能管理,但无法跟踪详细变化,只能记载文件大小的改变。Microsoft Word 是二进制格式,版本控制系统无法跟踪其改动,发起使用纯文本方式编写文件,并使用 UTF - 8 编码。Windows 用户不要使用自带记事本编辑文本文件,发起使用 Notepad++ 并将默认编码设置为 UTF - 8 without BOM。
2、Git 生存文件方式

Git 每次提交版本生存的是文件内容的完整快照。对于已变化的文件,生存完整内容;未变化的文件只生存上一个版本的指针。Git 适合生存文本文件,能进行很好的压缩和差异分析;对于二进制文件,压缩比率低,占用空间几乎随提交次数线性增长。
3、工作区与版本库概念及操纵


  • 工作区:即仓库目录,是开辟程序所在目录。提交版本后,Git 会自动检测自该版本之后仓库目录下文件的改动(增、删、改),可使用 git status 下令查看。比方:
  1. cd /Users/xiao/pro
  2. git status
  3. echo "hello xiao" >> readme.txt
  4. git status
复制代码

  • 版本库:即仓库目录下的 .git 目录,不属于工作区。将修改内容提交为新版本的步骤如下:

    • 添加到暂存区:使用 git add 下令,可添加单个文件(git add 文件 1)、多个文件(git add 文件 1 文件 2)或整个当前目录(git add .),也可多次执行 add 操纵。
    • 提交到版本库分支:使用 git commit -m '提交信息' 下令。执行该下令时,可能需配置用户和邮箱,使用 git config --local user.name '用户名' 和 git config --local user.email '邮箱' 进行配置。
    • 查看版本记载:使用 git log 下令,若嫌输出信息多,可加上 --pretty=oneline 参数。

三、下令小结


  • 创建并初始化仓库
  1. mkdir /Users/xiao/pro
  2. cd /Users/xiao/pro
  3. git init
复制代码

  • 设置用户与邮箱
  1. git config --local user.name 'xiao'
  2. git config --local user.email 'xiao@example.com'
复制代码

  • 查看 Git 当前状态:git status
  • 将检测到修改的文件添加到暂存区:git add 文件名
  • 将暂存区的文件提交到版本库的分支:git commit -m '提交信息'
  • 查看提交记载:git log 或 git log --pretty=oneline
四、版本回退与进步

1、相干概念

创建 Git 版本库时,Git 自动创建 master 分支,git commit 是往 master 分支提交更改。版本库中有暂存区(stage 或 index)、master 分支以及指向 master 的指针 HEAD,HEAD 指向当前在用版本。
2、版本回退

从当前版本回退到过去的版本,Git 仅将 HEAD 指向指定版本,并更新工作区文件。比方当前版本为版本 3,回退到版本 1 的操纵如下:

  • 查看版本信息:git log --pretty=oneline
  • 回滚到上一个版本

    • 方式 1:使用 HEAD^ 表示上一个版本,HEAD^^ 表示上上个版本,HEAD~n 表示上上上…n 个版本,如 git reset --hard HEAD^ 或 git reset --hard HEAD~2。
    • 方式 2:使用 git log 查询出的 commit id 号,如 git reset --hard 353b5afb8784f0e19c8dab83be1cb97a93b13bd4。

3、版本进步

从当前版本进步到未来的版本,当使用 git log 查看时,最新版本可能会不见。可使用 git reflog 查看下令历史,获取 commit id 后进行进步操纵。比方当前版本为版本 1,进步到版本 3 的操纵如下:

  • 查看下令历史:git reflog
  • 进步到指定版本:git reset --hard 87e199e
4、总结


  • 使用 git reset --hard commit_id 可在版本历史之间穿梭。
  • 回退版本前,用 git log 查看提交历史确定回退版本。
  • 进步版本时,用 git reflog 查看下令历史确定进步版本。
五、打消修改

1、场景 1

已提交不符合的修改到版本库,且未推送到远程库,可参考版本回退操纵。
2、场景 2

文件内容已提交到版本库,之后修改并添加到暂存区,又再次修改。打消操纵如下:

  • 执行 git reset HEAD 将文件从暂存区拿回工作区。
  • 执行 git checkout -- 将工作区的修改还原到上一次 git commit 的状态。
3、场景 3

文件内容从未提交到版本库,修改并添加到暂存区,又再次修改。执行 git checkout -- 将工作区的修改还原到 git add 时文件的内容。
4、留意事项

git checkout -- file 下令中的 -- 很重要,没有 -- 就酿成了“切换到另一个分支”的下令。
六、管理修改

Git 跟踪并管理的是修改,而非文件。每次修改都需先 add 到暂存区,才能提交到版本库。比方:
  1. echo "hello" > a.txt
  2. git add a.txt
  3. echo "world" >> a.txt
  4. git commit -m "版本 1"
  5. git status
  6. git diff HEAD -- a.txt
复制代码
可选择将后续修改也 add 到暂存区后再 commit 一个新版本,或先将多次修改合并 add 后再提交一个版本。
七、删除文件

1、删除文件操纵


  • 添加并提交文件
  1. git add test.txt
  2. git commit -m "v1"
复制代码

  • 删除文件:可在文件管理器中删除或使用 rm 下令,此时工作区和版本库不同等,git status 会提示文件被删除。
  • 从版本库中删除文件:使用 git rm 下令删除文件并 git commit,如:
  1. git rm test.txt
  2. git commit -m "remove test.txt"
复制代码
也可先手动删除文件,再使用 git rm 或 git add,结果相同。
2、误删文件规复

若删错文件,可使用 git checkout -- test.txt 下令将误删的文件规复到最新版本。但从来没有被添加到版本库就被删除的文件,无法规复。
八、小结

   git rm 用于删除文件。已提交到版本库的文件不消担心误删,但只能规复到最新版本,会丢失最近一次提交后修改的内容。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莱莱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表