git

Posted xinsiwei18

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git相关的知识,希望对你有一定的参考价值。

  git是一个用于帮助用户实现版本控制的软件

  下载安装:https://git-scm.com/downloads,下载后点点点

 

第一阶段:

  开始管理你的项目

  进入到你要管理的项目程序目录下,右键选择Git Bash Here命令行

  • git init 让git帮你管起当前目录

  执行后,它帮你创建了一个.git文件,默认是隐藏的,需要查看要到文件夹选项下勾选显示隐藏文件

  • git status  查看当前目录下所有目录文件的状态

  显示红色的,说明git还没对此目录文件管理到,需要命令操作

  • git add xx.py 管起某个文件

  再次status查看时,xx.py是绿的,代表管到了

  • git add . 管起当前目录下所有目录文件
  • git commit -m ‘创建第一个版本’  进行创建版本  -m为描述信息

  不过执行命令的时候,报错了,主要你没告诉你是谁,所以你还要这么做

  • git config --global user.email "[email protected]"  设置邮箱
  • git config --global user.name “laoliu”  设置名字

  再次进行commit时,就没报错了,并有create字眼,就说明提交成功

  这个时候查看status,显示信息不再有目录文件了,但是本地这些文件都是有的,说明提交后,本地文件相对git是透明的

  如果我对某个文件进行修改,查看status,修改文件变红了,说git检测到文件的变化

  然后你再进行git add .    git commit -m ‘增加xx功能’,目录文件又透明了

  • git log 查看提交记录

  从查看的内容,可以看到有两次提交记录,表示提交了两个版本

  如果我想回退到上个版本,怎么做了?

  • git reset --hard 版本号(log里commit后面跟的那串随机字符)   回退到指定版本

  回退后查看log,发现刚才回退的版本记录不存在了,如果想看之前回退版本号,就要用下面命令了

  • git reflog  查看提交和回退版本记录

  如果我又想回到刚才那个回退版本,怎么做了?

  使用git reset --hard 版本号(而此时的版本号是reflog下提交版本时的版本号,不是回退时的版本号,它要比回退时的版本长度更短)

 

第二阶段

  比如有这么一个场景,就是你接到一个新增功能的任务,开发到一半的,线上的突然有问题了,你需要修复这个问题,提交代码时,你需要做到只提交修复bug的代码,新开发一半的代码不能提交

  • git stash  把带红的(修改的)临时存在某个地方

  你修改完bug提交后,你要继续开发新任务另一半,可以用下面的命令,并且恢复回来的 会保留你刚才修复好bug的内容

  • git stash pop 把之前存的再拿回来
  • git stash list  可以查看你存在某地方的记录

  当除了上述这方法解决上述过程中代码的冲突,还可以用分支的方式来解决,分支你就理解有两套代码,一套用于你修复线上问题,一套则是用新开发任务,现在目前只有一套,你需要先创建一套

  • git branch dev  创建一个分支
  • git branch 查看所有分支

  假如dev,这套代码用于新功能开发的,当前分支默认master,怎么切换到dev分支呢?

  • git checkout dev  切换到指定分支

  在dev你功能开发到一半,你需要修改线上的一个bug,你可以dev分支先提交你开发一半的代码,然后切换到master分支里去修复bug

  当然在实际开发,一般是不让你修改master分支代码(主要是保持master里的代码和线上的时时刻刻保持一致),所以修复bug,你再创建一个分支,在这个分支里,你尽情的改

  那问题来,现在有三套代码,每套代码都不一样,那合并代码时应该怎么合并呢?合并前你需要先切换到master

  • git merge bug分支   把修复完bug的分支合并到当前分支master下

  合并后你不需要再提交了,因为在bug分支里,你已经提交过,当然合并后,之前bug分支就没有存在的必要了,就要进行删除了

  • git branch -d bug分支  删除bug分支

  这个时候,你再次切换dev里继续开发你自己的新增功能,开发完后,你需要再次合并了,切回到master里,执行git merge dev,因为修复bug的功能master里有,而dev里没有,新开发功能在mester里没有,它跳出让输入记录操作信息,你输入完后,:wq保存一下就可以了

  如果合并过程中,代码冲突,你慢慢找,手动修改一下

 

第三阶段

  如果你要跨设备开发,每次复制到u盘或者通过百度云上传下载都还是比较麻烦的,而GitHub则可以完美支持这个方面,它的功能主要就是提供一个代码托管的地方

  开始你的托管前,你必须要到GitHub上进行注册,登录后,你需要先在GitHub上先创建接收你项目的目录,点击New repository

技术分享图片

  填好项目名和描述,点击创建就可以了,看到下面这几条命令

技术分享图片

  • git remote add origin https://github.com/caijingkuangmo/chou-ti.git   对你的提交网址进行重命名
  • git push -u origin master 把master里的代码提交到origin网址里

  执行完后,刷新提交网址,就能看到我们提交的代码了

  好,那我们现在换台设备开发了,怎么操作了

  • git clone https://github.com/caijingkuangmo/chou-ti.git  把指定url里代码全部下载下来

  此时你处在跟目录外,所以你需要cd到根目录下,再执行相应的命令,默认是只是把master分支的下载下来了,如果你想把dev分支的代码下载下来,你还需要这么做

  创建分支dev,切换到dev分支,然后执行git pull origin dev   把dev分支代码拉下来(clone下载的代码是保存了之前对提交url命名的)

  pull拉代码的动作本质上是分两步:

  • git fetch origin dev   先把dev代码拉下来放在版本库里
  • git merge origin/dev  把版本库里的代码合并到本地dev

  当然上述过程,提交记录可能会出现分叉的情况,如果想保持记录的整洁,可以把第二条命令换成下面这条命令

  • git rebase origin/dev

 

  骚师博客

 

以上是关于git的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段