更新记录 2021.8.18 增加git基本配置信息

Git 与 SVN

文章 SVN 和 Git 区别
最大的区别就是git是去中心化的,打个比方当没有网络的情况下,我依旧可以提交自己的代码。但是svn当没有网络的时候就无法提交,所以git本地就是一个存储库。
git合并操作保留原有的提交过程
git可以修正提交,在自己的分支上修正提交不会影响到大家,svn没有干净的提交,影响 code Review.

基本概念

github 中相关概念

  • 复制克隆项目 (Fork)
    • 该fork的项目是独立存在的 复制过来自己用
  • 发起请求 (Pull Request)
    • 你新增了功能,觉得不错,想和原本项目一起
  • 关注(Watch)
    • 关注项目,当项目更新可以接受到通知
  • 事务卡片(Issus)
    • 发现代码bug 但是目前没有成型代码 需要讨论时用



git 常见操作

远程仓库的使用

管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等

查看远程仓库

  1. $ git remote
  2. -v 显示需要读写远程仓库使用的git保存的简写与其对应的url
  3. $ git remote -v
  4. origin https://github.com/schacon/ticgit (fetch)
  5. origin https://github.com/schacon/ticgit (push)

添加远程仓库

  1. git remote add <shortname> <url> //同时指定一个方便使用的简写
  2. $ git remote add pb https://github.com/paulboone/ticgit
  3. $ git remote -v
  4. origin https://github.com/schacon/ticgit (fetch)
  5. origin https://github.com/schacon/ticgit (push)
  6. pb https://github.com/paulboone/ticgit (fetch)
  7. pb https://github.com/paulboone/ticgit (push)
  8. 现在你可以在命令行中使用字符串 pb 来代替整个 URL 例如,如果你想拉取 Paul 的仓库中有但你没有的信息,可以运行 git fetch pb
  9. $ git fetch pb

从远程仓库中抓取和拉取

  1. $ git fetch <remote>

这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

如果你的当前分支设置了跟踪远程分支, 那么可以用 git pull 命令来自动抓取后合并该远程分支到当前分支。

推送到远程仓库

  1. git push <remote> <branch>
  2. 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字)
  3. $ git push origin master

查看某个远程仓库

  1. git remote show <remote> 命令
  2. $ git remote show origin

远程仓库的重命名与移除
你可以运行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:

  1. $ git remote rename pb paul
  2. $ git remote
  3. origin
  4. paul

删除

  1. git remote remove
  2. git remote rm
  3. $ git remote remove paul
  4. $ git remote
  5. origin

新建分支

  1. //创建 develop 本地分支
  2. git branch develop
  3. //创建本地分支并切换
  4. git checkout -b develop
  5. //创建远程分支 (创建本地分支并进行推送)
  6. git checkout -b develop
  7. git push origin develop

删除分支

  1. # 删除远程分支
  2. git push origin :<branchName>
  3. git push origin --delete <branch-name> # >= 1.7.0

合并分支

  1. # develop 分支代码合并到 master
  2. git checkout master //先切换到master分支
  3. git merge develop //合并分支

解决冲突

  1. 情景:git 发现本地文件在远端做了修改,需要进行git pull
  2. 先暂存本地代码 在拉取远端
  3. git pull

强制拉取覆盖本地

场景 本地有进行修改并进行保存,拉取的文件有冲突

  1. git fetch --all
  2. git reset --hard origin/master
  3. git pull

git相关命令

查看当前配置 git config —list
第一次使用git配置用户信息
配置用户名 git config —global user.name “your name”
配置用户邮箱 git config —global user.email “youremail@github.com”

工作区与暂存区的交互

  • 新建仓库 ```javascript
  1. git init

2.git clone git clone newname 克隆项目并且自己命名

  1. - 提交
  2. ```javascript
  3. 1.提交工作区所有文件到暂存区 git add . (常用)
  4. 2.提交工作区指定文件到暂存区 git add <file1> <file2> ...
  5. 3.提交工作区某个文件夹中所有文件到暂存区 git add [dir
  • 撤销

    1. 1.删除工作区文件 并且也从暂存区删除对应文件的记录 git rm <file1> <file2>
    2. 2.取消暂存区已经暂存的文件 git reset HEAD <file> ...
    3. 3.隐藏当前变更,以便能够切换分支 git stash
  • 查询信息

  1. 1.查询当前工作区所有文件的状态 git status
  2. 2.比较工作区中当前文件和暂存区之间的差异 git diff

暂存区上的操作命令

  • 提交文件到版本库

    1. 1.暂存区->本地仓库 git commit -m "info"
    2. 2.撤销上一次提交 git commit --amend
  • 查看信息

    1. 1.比较暂存区与上一版本的差异 git diff --cache
    2. 2.查看提交历史 git log
  • 分支管理

    1. 1.创建分支 git branch <branch-name> git branch testing
    2. 2.切换分支 git checkout <branch-name> git checkout testing
    3. 3.新建并切换到新建分支上 git checkout -b <branch-name>
    4. 4.删除分支 git branch -d <branch-name>
    5. 5.将当前分支与指定分支进行合并 git merge <branch-name>

本地仓库上的操作

  1. 1.查看本地仓库关联的远程仓库 git remote -v 显示远程仓库的url地址
  2. 2.添加远程仓库 git remote add [remote-name] [url]

忽略文件 .gitignore

本地文件夹上传到github

https://github.com/doraemon00/wx-mall/tree/master

See git-config(1) for details.
I learned that I can make it work with:
git branch —set-upstream my_branch origin/my_branch
注意,推送到远程分支后,默认也不是跟踪snsconnct:mater分支,你只要没有显示指定,git pull的时候,就会提示你。

丢弃本地所有的改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它

  1. git fetch origin
  2. git reset --hard origin/master

[

](https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)

本地文件夹关联远程仓库

  1. github上新建一个文件夹
  2. 关联仓库
  3. git remote add origin https://github.com/doraemon00/git-test.git
  4. git push -u origin master

分支

回滚历史版本

  1. git reset --hard 版本号
  2. git reflog 查看所有版本

创建分支

注意:需要有一次提交记录

  1. git branch 分支名
  2. git branch 查看分支

切换分支

  1. git checkout 分支名

删除分支

  1. git branch -D 分支名

创建并切换分支

  1. git checkout -b 分支名

添加文件到历史此时两个分支就没关系了
删除分支时 当前用户不能在当前要删除的分支上

文件修改 切换分支

  1. git stash 暂存文件
  2. git stash pop 还原暂存的内容

分支有更改不能直接切换 可以提交更改或者暂存更改,暂存使用过渡区覆盖掉工作区
合并分支

  1. git merge 分支名

其它命令

  1. 创建一个有内容的文件
  2. 往文件中写入
  3. echo hello(内容) > 1.txt 一个大于号
  4. 往文件中追加内容
  5. echo hello(内容) >> 1.txt 两个大于号

问题报错:

git 错误 fatal: Not a valid object name: ‘master’.
问题场景:新建git项目或刚为已存在项目创建了git仓库,想用git branch dev创建dev分支或用git checkout -b dev创建并切换到dev分支时报错。
原因:刚创建的git仓库默认的master分支要在第一次commit之后才会真正建立,否则就像你声明了个对象但没初始化一样
解决办法:先git add .添加所有项目文件到本地仓库缓存,再git commit -m “init commit”提交到本地仓库,之后就可以随心所欲地创建或切换分支了。(这里给出的是可以直接操作成功的,add和commit可以按自己需要写)。

删除分支报错
Cannot delete branch ‘dev’ checked out at ‘F:/Html-Test/vue/8.29/git/git-project’

切换分支 两个分支之间切换
image.png
原因是因为不可以有两个工作区

标签

https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%89%93%E6%A0%87%E7%AD%BE
列出标签
git tag

创建标签

  • 附注标签
  • 轻量标签

git tag v1.0
git show v1.0

共享标签
**git push origin v1.0**

git 提交规范

  • feat 新功能

  • fix 修补 bug

  • docs 文档

  • style 格式

  • refactor 重构

  • test 增加测试

  • chore 构建过程、辅助工具

  • perf 提高性能

文章
https://juejin.im/post/5afc5242f265da0b7f44bee4
https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

其它操作

携带账号密码进行下载

  1. git clone http://doraemon:doraemon@gitlab.yuanxiatech.com/xgj/website.git
  2. git clone http://账号:密码@项目地址

文章索引
https://blog.csdn.net/weixin_41413511/article/details/105073305