Git 不迷路

5 篇文章 0 订阅

前言

   Git 作为版本控制工具,使用起来也是方便好用,但是对于直接从SVN(集中式版本控制
工具)转过来的伙伴们并不是十分友好,尽管我们可以看文档和API,上手会快点,但实
际操练还是有难度,毕竟实际工程项目的使用还是有点难度,本文将从练习到项目实际
使用的疑虑给打消,可以无缝连接,希望可以帮助有疑虑,或者刚开始使用Git  工具的
伙伴

私下练习

  1. 第一步在github 或者 码云注册一个账号,以github 为例,注册就省略了
  2. 创建一个远程仓库,点取右边+ ,如下图所示
    创建git 远程仓库
    创建仓库步骤
    远程链接
    3.本地处理
    Do location
    接着要把本地的公钥放到github
    找到本地 .ssh文件,打开公钥
    本地键值对
    在这里插入图片描述
    add 公钥
    添加成功
    在这里插入图片描述
  3. clone 代码
    clone 前
    git clone
    t提交本地代码到远程
    添加远程仓库
    git remote add origin git@github.com:windwardbird/night.git

提交代码之前 git fetch
git pull
命令解释

公司实战

私下练习感觉还挺复杂,实际使用就没有那么复杂,到公司有件事对于开发来说是至关重要

  1. 拥有自己的工号,邮箱以及登录密码(会根据这个给你开权限)
  2. 会在当天给你开取权限,拉取代码(一定要确认权限开好)
公司里面的应用
            我们首先不用去建一个仓库,也不用设置自己全局的name 和 email , 只需要被
      
        管理员开一个权限,添加到项目开发组,即会生成远程仓库   .git 的链接,不需要
       
        自己生成密钥对等一系列操作,(小公司除外,可能还需要自己搭建服务器)

一般 git 默认会有5个分支 功能分支 开发分支 紧急已修复 发版分支 master分支 ,一般我们不在master 开发,而是最终合并到master分支
命令操作:

  1. 在一个目录创建一个新的目录
  2. git clone 连接的 .git url
  3. git clone 这个操作,如果仓库只有一个分支,会直接把这个分支一并拉下来,如果有很多分支在这个库,可能命令也成功执行,但是除了 .git 却没有任何项目,不要着急
  4. git branch -a 查看所有分支
  5. git checkout branch XXXX(远程分支)
  6. 此时本地就有了代码
  7. 如下图所示 night 文件夹就是我待操作的在这里插入图片描述在这里插入图片描述
  8. git remove -v (看以看见自己权限 fetch /push)
  9. 个人建议还是随便修改代码,比如加 空格 ,或者添加注释
  10. git status
  11. git add . (英文点)
  12. git commit -m “描述”
  13. git status
  14. git fetch
  15. push 之前一定要设置 .git 忽略文件(仅提交Src 以及待提交的配置文件)
  16. git pull
  17. git push -u origin XXX(远程分支) 【仅初次添加 -u】
  18. git log
  19. git log --pretty=oneline
  20. 如果 没有 push success 请联系管理员再次确认权限是否ok
  21. 由于权限的问题我们可能提交不了代码,不要慌张,我们有解决办法,fork 库
fork库
原理
  这个操作原理可以简单理解为类似SVN的模式集中开发。fork 库的概念就是谁有权限提
交代码,此人就可以创建一个fork 库,fork库会生成一个.git 连接,我们需要把 git 
clone 的连接修改为fork 库连接,所有人从此就在这个人的fork 开发,最终再有他合并
到真正对应的分支
  1. git clone XXXX(fork 库连接)
  2. git status
  3. git add .
  4. git commit -m “描述”
  5. git fetch
  6. git pull
  7. 提交代码代码注意了:此时不能push 要做一下关联和映射
  8. git branch -a
  9. git push origin HEAD: XXXX(fork库连接即 git clone XXXX)【每次都这个命令】
  10. 或者在拉取时候映射
  11. git checkout -b mylocalBranch origin/removebranch

公司使用场景详解

初始化克隆拉取代码
   方案一:(克隆git库,查看所有分支,剪切自己需要的分支) 以分支 feature/dev/20210301为例
    git clone git@github.com:windwardbird/night.git (远程链接)
	git branch -a
	git checkout --branch feature/dev/20210301
	
  方案二:(直接克隆git库对应的分支)
	git clone git@github.com:windwardbird/night.git --branch feature/dev/20210301
具体使用
1.  git branch  查看当前分支
2. git branch -a 查看所有分支
3. git checkout -b  myLocalBranch origin/removebranch  以远程分支为基础clone并建立本地分支
4. git checkout  myLocalBranch    切换到本地分支
5. git branch    查看检验是否已经切换到本地分支
6. git status     查看分支代码状态
7. git  add       添加到暂存区
8. git  commit   提交代码
9. git status   检查是否代码已提交完毕
10. git log      查看操作记录 
11.  git log --pretty=oneline  查看操作记录简版
12. git checkout origin/removebranch  切换到远程分支
13. git branch   是否切换成功
14. git pull     拉取最新代码避免覆盖他人代码
15.  git merge myLocalBranch  把本地分支合并到远程
16.  git commit  当有冲突解决冲突二次提交远程
17.  git pull    再次拉取防止多人开发覆盖代码
18.  git push
19.  git  branch -m  oldName new Name  修改分支名称 多用(自己本地分支)
20.  git branch -D myLocalBranch   久而不用可以删除

git 线上强制回滚

1. 本地代码push到远程服务器,结果不需要,**切记,别人没有在提交代码**
2. git log--pretty=oneline
3. git reset --hard <commit_id>
4. git push -f -u origin/<remotes branch name>
5. 如果本身就在远程对应的分支
  git push -f origin

------本地分支直接推到远程
git push origin <remotes branch name >:<local branch name>
if not ,it will create new remotes branch 
查询分支基于某个分支拉取
git reflog --date=local | grep branchname

git Cherry-pick 妙用

代码合并冲突真是让头大,解决冲突并不麻烦就是不爽,如果每次只是提交自己编写到代码,那是多么开心啊,也不用考虑是否当前分支和之前分支有多少差异,这个时候我们可以用一下git 的cherry-pick 命令定点爆破简直不要太爽
localDevelopBranch A

romotesDevelopBranch B

A 的代码推到B 直接合并会有冲突,尤其是不同源分支,肯定有冲突,尤其多人不规范开发

直接上图,一图胜过万语

first

two

three-before
three-after

疑问?

如果错了能不能回退,能,怎么会让有去无回呢,那不是成了肉包子砸狗

four
end

idea 添加忽略的文件:

1.初始化一个工程
2.在.git 空间 先创建一个 .gitignore 文件
3. --global core.excludesfile ~/.gitignore
4. 提交
5. 后面的文件就会过滤忽略配置的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值