日常Git使用——2019年12月11日16:19:03

时间:2022-09-19 04:52:08

1.git介绍

1.1 什么是git?

什么是Git? 比如一个项目,两个人同时参与开发,那么就把这个项目放在一个公共的地方,需要的时候都可以去获取,有什么改动,都可以进行提交。

为了做到这一点,就需要一个版本控制系统,Git就是这样一个免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

1.2 提供git的网站

提供git服务的网站有很多

国外常用的是: http://github.com

国内常用的是码云:http://git.oschina.net

github慢,但是上面内容多,大神多,简历里也需要github.com

码云快,但是内容少

1.3 git分支介绍

master分支,即主分支。任何项目都必须有个这个分支。对项目进行tag或发布版本等操作,都必须在该分支上进行。

develop分支,即开发分支,从master分支上检出。团队成员一般不会直接更改该分支,而是分别从该分支检出自己的feature分支,开发完成后将feature分支上的改动merge回develop分支。同时release分支由此分支检出。

release分支,即发布分支,从develop分支上检出。该分支用作发版前的测试,可进行简单的bug修复。如果bug修复比较复杂,可merge回develop分支后由其他分支进行bug修复。此分支测试完成后,需要同时merge到master和develop分支上。

feature分支,即功能分支,从develop分支上检出。团队成员中每个人都维护一个自己的feature分支,并进行开发工作,开发完成后将此分支merge回develop分支。此分支一般用来开发新功能或进行项目维护等。

fix分支,即补丁分支,由develop分支检出,用作bug修复,bug修复完成需merge回develop分支,并将其删除。所以该分支属于临时性分支。

hotfix分支,即热补丁分支。和fix分支的区别在于,该分支由master分支检出,进行线上版本的bug修复,修复完成后merge回master分支,并merge到develop分支上,merge完成后也可以将其删除,也属于临时性分支。


2.vscode同步git

新建.gitignore文件忽略不想同步的文件夹

node_modules

2.1 链接仓库

git remote add origin https://github.com/jixiyu/crowdFunding-dapp.git

2.2 2.2 commit提交

git add -A
git commit -m "xxx"

2.3 推送到远程仓库

git push -u origin master


3.建仓库指令

3.1 绑定用户身份
4.设置用户名
git config --global user.name 'jixiyu1' 设置用户邮箱
git config --global user.email 287766860@qq.com git help config
# 获取帮助信息,查看修改个人信息的参数 git config --list
# 查看配置的信息
3.2 新建git项目
1.进入空的文件夹   右键
git bash here 2.创建文件夹
mkdir images22
显示当前路径
pwd 3.初始化仓库
cd images22
git init 5.添加文件的三个过程
工作区
git status
git add test.php
git add hello.php
添加全部
git add -A 暂存区
git status
git commit -m "提交描述" 仓库
git status 6.创建一个文件
touch test.php

4.连接及关联仓库

(第一次链接)链接仓库:
git remote add origin 指定仓库 仓库关联
git push -u origin master (第二次以后)远程仓库的提交
git push 查看日志
git log

5.分支

如何在Github上创建、删除分支

1、在本地创建新分支:
git branch newbranch 2、在本地切换到新分支:
git checkout newbranch 3、将新分支推送到github:
git push origin newbranch 4、在本地删除一个分支:
git branch -d newbranch 5、在Github远端删除一个分支:
git push origin :newbranch

6.强制推送

推送代码
git push origin master
git push -f origin master # 强制推送 git push -u origin master

7.拉代码

只能拉取 origin 里的一个url地址,这个fetch-url
默认为你添加的到 origin的第一个地址
git pull origin master # 上面一条命令等同于下面两条命令
git fetch origin
git merge origin/next

如果远程主机删除了某个分支,默认情况下,git pull 不会在拉取远程分支的时候,删除对应的本地分支。这是为了防止,由于其他人操作了远程主机,导致git pull不知不觉删除了本地分支。

但是,你可以改变这个行为,加上参数 -p 就会在本地删除远程已经删除的分支。


8.修改远程仓库地址

git remote remove origin
# 删除该远程路径 git remote add origin git@jslite.github.com:JSLite/JSLite.git
# 添加远程路径

title: git使用

date: "2018-12-22 20:17:16"

tags: 技术指令

categories: 技术驿站


9. Git日常使用指令

  1. git init

这个时候用到了第一个命令,代表初始化 git 仓库

可以看到初始化成了,至此 test 目录已经是一个 git 仓库了。

  1. git status

默认就直接在 master 分支,关于分支的概念后面会提,这时最主要的是提示 a.md 文件 Untracked files ,就是说 a.md 这个文件还没有被跟踪,还没有提交在 git 仓库里呢,而且提示你可以使用 git add file 去操作你想要提交的文件。

git status 这个命令顾名思义就是查看状态,这个命令可以算是使用最频繁的一个命令了,建议大家没事就输入下这个命令,来查看你当前 git 仓库的一些状态。

  1. git add

上面提示 a.md 文件还没有提交到 git 仓库里,这个时候我们可以随便编辑下 a.md 文件,然后输入 git add a.md ,然后再输入 git status :

此时提示以下文件 Changes to be committed , 意思就是 a.md 文件等待被提交,当然你可以使用 git rm --cached 这个命令去移除这个缓存。

  1. git commit

接着我们输入 git commit -m 'first commit' ,这个命令什么意思呢? commit 是提交的意思,-m 代表是提交信息,执行了以上命令代表我们已经正式进行了第一次提交。

这个时候再输入 git status ,会提示 nothing to commit。

  1. git log

git log 命令可以查看所有产生的 commit 记录,所以可以看到已经产生了一条 commit 记录,而提交时候的附带信息叫 'first commit' 。

  1. git add & git commit

看到这里估计很多人会有疑问,我想要提交直接进行 commit 不就行了么,为什么先要再 add 一次呢?首先 git add 是先把改动添加到一个「暂存区」,你可以理解成是一个缓存区域,临时保存你的改动,而 git commit 才是最后真正的提交。这样做的好处就是防止误提交,当然也有办法把这两步合并成一步,不过后面再介绍,建议新手先按部就班的一步步来。

  1. git branch

branch 即分支的意思,分支的概念很重要,尤其是团队协作的时候,假设两个人都在做同一个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A, B俩人都在做同一个项目,但是不同的模块,这个时候A新建了一个分支叫a, B新建了一个分支叫b,这样A、B做的所有代码改动都各自在各自的分支,互不影响,等到俩人都把各自的模块都做完了,最后再统一把分支合并起来。

执行 git init 初始化git仓库之后会默认生成一个主分支 master ,也是你所在的默认分支,也基本是实际开发正式环境下的分支,一般情况下 master 分支不会轻易直接在上面操作的,你们可以输入 git branch 查看下当前分支情况:

如果我们想在此基础上新建一个分支呢,很简单,执行 git branch a 就新建了一个名字叫 a 的分支,这时候分支 a 跟分支 master 是一模一样的内容,我们再输入 git branch 查看的当前分支情况:

但是可以看到 master 分支前有个 * 号,即虽然新建了一个 a 的分支,但是当前所在的分支还是在 master 上,如果我们想在 a 分支上进行开发,首先要先切换到 a 分支上才行,所以下一步要切换分支

  1. git checkout a

执行这个命令,然后再输入 git branch 查看下分支情况:

可以看到当前我们在的分支已经是a了,这个时候 A 同学就可以尽情的在他新建的a分支去进行代码改动了。

那有人就说了,我要先新建再切换,未免有点麻烦,有没有一步到位的,聪明:

  1. git checkout -b a

这个命令的意思就是新建一个a分支,并且自动切换到a分支。

  1. git merge

A同学在a分支代码写的不亦乐乎,终于他的功能完工了,并且测试也都ok了,准备要上线了,这个时候就需要把他的代码合并到主分支master上来,然后发布。git merge 就是合并分支用到的命令,针对这个情况,需要先做两步,第一步是切换到 master 分支,如果你已经在了就不用切换了,第二步执行 git merge a ,意思就是把a分支的代码合并过来,不出意外,这个时候a分支的代码就顺利合并到 master 分支来了。为什么说不出意外呢?因为这个时候可能会有冲突而合并失败,留个包袱,这个到后面进阶的时候再讲。

  1. git branch -d

有新建分支,那肯定有删除分支,假如这个分支新建错了,或者a分支的代码已经顺利合并到 master 分支来了,那么a分支没用了,需要删除,这个时候执行 git branch -d a 就可以把a分支删除了。

  1. git branch -D

有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码,但是如果你非要删除,那就执行 git branch -D a 就可以强制删除a分支。

  1. git tag

我们在客户端开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不同的代码,所以我一般要给我们的代码加上标签,这样假设v1.1版本出了一个新bug,但是又不晓得v1.0是不是有这个bug,有了标签就可以顺利切换到v1.0的代码,重新打个包测试了。

所以如果想要新建一个标签很简单,比如 git tag v1.0 就代表我在当前代码状态下新建了一个v1.0的标签,输入 git tag 可以查看历史 tag 记录。

可以看到我新建了两个标签 v1.0、v1.1。

想要切换到某个tag怎么办?也很简单,执行 git checkout v1.0 ,这样就顺利的切换到 v1.0 tag的代码状态了。

OK,以上全是一些最基本的Git操作,而且全是在本地环境进行操作的,完全没有涉及到远程仓库,下一章节将以远程 GitHub 仓库为例,讲解下本地如何跟远程仓库一起同步协作,另外今天讲的全是最基础最简单的Git操作,一步步来,后续再继续讲解一下Git的高阶以及一些Git的酷炫操作。


https://zhuanlan.zhihu.com/p/22666153

使用git在本地创建一个项目的过程

$ mkdir ~/hello-world    //创建一个项目hello-world
$ cd ~/hello-world //打开这个项目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m 'first commit' //提交更新,并注释信息“first commit”
$ git remote add origin git@github.test/hellotest.git //连接远程github项目
$ git push -u origin master //将本地项目更新到github项目上去

git设置关闭自动换行

$ git config --global core.autocrlf false

为了保证文件的换行符是以安全的方法,避免windows与unix的换行符混用的情况,最好也加上这么一句

$ git config --global core.safecrlf true

git tag 使用

git tag  # 列出当前仓库的所有标签
git tag -l 'v0.1.*' # 搜索符合当前模式的标签
git tag v0.2.1-light # 创建轻量标签
git tag -a v0.2.1 -m '0.2.1版本' # 创建附注标签
git checkout [tagname] # 切换到标签
git show v0.2.1 # 查看标签版本信息
git tag -d v0.2.1 # 删除标签
git tag -a v0.2.1 9fbc3d0 # 补打标签
git push origin v0.1.2 # 将v0.1.2标签提交到git服务器
git push origin --tags # 将本地所有标签一次性提交到git服务器
git tag # 查看当前分支下的标签

修改时间点

2019年10月10日18:20:53

2019年10月24日15:44:20

2019年12月11日15:10:18

2019年12月12日18:30:57