git入门到开发及vscode中git的简单使用

git常用开发操作

环境配置

https://www.jianshu.com/p/ba401eb527a5

单机基本操作

下面介绍常用的git命令

1. 远程克隆
    git clone -b XXX
    -b 指的是拉取远程仓库的名称,拉下后本地仓库也会有个同名仓库
    本地没有文件的话使用git clone,本地已经存在,使用
    git pull 拉取当前分支上的最新代码 
    git diff 查看冲突
    ls #克隆的仓库就在该目录下
    // 如果有冲突 需要手动解除冲突再提交
2. 查看当期状态
    git status
本地修改后
3. 更新代码
    git add xxx
    git add . #表示添加当前目录的所有文件
    add 添加改动纪录后,但是后悔了,想有一些改动不暂存了可以使用
    单个文件/文件夹:
    git checkout -- filename1
    所有文件/文件夹:
    git checkout .
4. 提交代码到本地
    git commit -m "代码的提交说明" #-m 表示message(消息)
    假如在本地commit了之后悔了,我们可以采用两种方案进行进行版本撤退
    借助git log
    commit 3b0939d505beda0d67551b2b3c809c04d5d50f9b (HEAD ->            dev_zz_0708_test)
      Author: 周兆(26663875) <zhouzhao008@ke.com>
      Date:   Thu Jul 9 17:38:52 2020 +0800
     加个dev
   commit b5f44dc210e481a20cb9612247d6761766002bf6        (origin/dev_zz_0708_test)
     Merge: 9fdcfc5d 6de31270
     Author: 周兆(26663875) <zhouzhao008@ke.com>
    Date:   Thu Jul 9 17:23:24 2020 +0800
    Merge branch 'master' into dev_zz_0708_test
   commit 6de3127068906ce6283cf9364e323e967eeec745           (origin/master, origin/HEAD, master)
    Merge: 6a849115 262f7f73
   Author: fe-guliming <guliming@ke.com>
   Date:   Tue Jul 7 11:50:05 2020 +0800
   Merge branch 'iteration_7.8.0' into 'master'
你想撤销自己的commit可以取git log后的commit 后的字符
   4.1git reset --soft 3b0939d505beda0d67551b2b3c809c04d5d50f9b
   4.2git reset --hard 3b0939d505beda0d67551b2b3c809c04d5d50f9b
    区别4.14.2 git reset --soft 是回到日志码的版本,但保留此版本后的版本 不改变gitk树的逻辑结构
    借助这个git soft我们可以处理本地commit很多次但没提交的问题
    git reset --hard 是回到日志码的版本 但会修改本地修改记录,本地文件会回退到commit编码之前的版本。日志码的版本为head版本,修改gitk树结构,所以建议轻易不用!!!!
5. 提交代码到远程
    git push  #提交到远程
   在我们git push 之后 突然又后悔了怎么办呢???
   5.1.git reset --hard xxxx(commit后的编码)彻底回退版本,连本地文     件都会被回退到上个版本的内容
    5.2.git revert
    Revert 撤销一个提交的同时也会重新创建一个提交。这是一个安全的方法,因  为它不会重写提交历史。相比git reset,它不会改变现在的提交历史。
因此,git revert可以用在公共分支上,git reset应该用在私有分支上。
你也可以把git revert当作撤销已经提交的更改,而git reset用来撤销没有提交的更改

扩展:git fetch 与git pull 区别

git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分中。
而
git pull 
则是将远程主机的最新内容拉下来后直接合并,即:
git pull = git fetch + git merge
,这样可能会产生冲突,需要手动解决。

协同开发时,git的使用

git相比其他的代码管理仓库的区别有,它可以很轻松多分支开发,分支之间的merge等,比如我们现在进入一个新的仓库,第一步要进行在仓库上建立一个自己的分支来进行开发,

  1. 建立分支
    方法
    1.直接在网站上进行建立分支
    2.第二种方法,我们先git clone主分支的代码,这样我们可以进行切换分支
git checkout -b gl-admin origin/master
// clone 远程master分支上的代码,来新建一个分支
git push --set-upstream origin gl-admin
然后推从到远程,这样本地和远程都能看到这个分支仓库 

由于第一种方法简单,我就由第一种方法接着说,我们在第一种方法上新建代码仓库了,接着我们就可以按照单机开发操作进行接着操作了。
但我们代码编写的差不多的时候,以及每日开发之前拉取master最新的代码,在最新的代码基础上进行开发,master的代码是所有人开发的合在一起的最新的没有问题的代码。这个时候 我们需要在本地建立一个master分支,且这个分支是远程的master分支的映射,

git checkout -b 本地分支名 origin/远程分支名
git checkout -b master origin/master
git语句中不带 origin 则属于本地仓库,远程并没有,之间没有映射关系,加了origin/之间有映射关系,有了这个关系,git pull git push 就可以用了
而没有建立这个映射关系的话 每次git pull 和 git push 需要 
git pull/push origin 远程分支名
建立分支后在本地我们可以通过以下命令进行查看分支
git branch //当前分支名
git branch -a //所有分支名
git branch -vv //分支之间的映射关系
git branch -d 分支名 //删除不用的分支
git push origin --delete <branchName> //删除远程分支

接下来 我们可以进行如下操作将master最新的代码与现在分支的代码进行合并并提交

git checkout master 
git pull 
git checkout dev
git merge master 
在merge时终端可能提醒输入东西具体操作查看这个链接
https://blog.csdn.net/wq6ylg08/article/details/89047553
git diff
// 如果有冲突 需要手动解除冲突再提交
git status //查看状态,
git add 文件 //添加修改文件
git commit -m ’xxxx‘ //提交到本地
git push

合并任意分支的方法:

当与其他分支的代码进行合并的时候,也是采用类似于合并master分支的代码方式
git checkout -b 本地分支名 origin/远程分支名
git pull 
git checkout dev
git merge master 
// 如果有冲突 需要手动解除冲突再提交
git status //查看状态,
git add 文件 //添加修改文件
git commit -m ’xxxx‘ //提交到本地
git push

扩展 git rebase

和git merge 类似 但是在git merge后的 git push 后

git log --graph --pretty=oneline --abbrev-commit

查看会发现你的git commit 历史已经被打乱了。

$ git log --graph --pretty=oneline --abbrev-commit
* d1be385 (HEAD -> master, origin/master) init hello
*   e5e69f1 Merge branch 'dev'
|\  
| *   57c53ab (origin/dev, dev) fix env conflict
| |\  
| | * 7a5e5dd add env
| * | 7bd91f1 add new env
| |/  
* |   12a631b merged bug fix 101
|\ \  
| * | 4c805e2 fix bug 101
|/ /  
* |   e1e9c68 merge with no-ff
|\ \  
| |/  
| * f52c633 add merge
|/  
*   cf810e4 conflict fixed
在合并分支时使用

git rebase 分支名

如果有冲突,rebase会中断,显示如图所示信息。

使用git status查看状态。显示为REBASE的状态。
解决冲突后执行:
git add filename
git rebase continue
如果还有冲突,需要继续解决冲突。
rebase结束后,执行git push。再合并就没有问题了。而且git log显示 commit没有打乱。

git stash的常用命令使用

我们有时会遇到这样的情况,正在dev分支开发新功能,也许做到一半时有人过来反馈一个bug,让马上解决,但是新功能做到了一半你又不想提交,这时就可以使用git stash命令先把当前进度保存起来,然后切换到另一个分支去修改bug,修改完提交后,再切回dev分支,使用git stash pop来恢复之前的进度继续开发新功能。下面来看一下git stash命令的常见用法

git stash
保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行git status命令,就会发现当前是一个干净的工作区,没有任何改动。使用git stash save 'message...'可以添加一些注释
git stash list
显示保存进度的列表。也就意味着,git stash命令可以多次执行。
git stash pop [–index] [stash_id]
git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1}恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
通过git stash pop命令恢复进度后,会删除当前进度。
git stash apply [–index] [stash_id]
除了不删除恢复的进度之外,其余和git stash pop 命令一样。
git stash drop [stash_id]
删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
git stash clear
删除所有存储的进度。

vscode中使用git常规操作
1.clone
在这里插入图片描述

本地分支
在这里插入图片描述
更改处只得是本地仓库所改动的一些文件,在这里可以假如本地暂存区,其中消息指的是commit
在这里插入图片描述
另外鼠标放在GIT字样旁边会有个下拉菜单,很方便
在这里插入图片描述
这是我们采用git diff在控制台看到的diff 也就是 pull 和merge的产生的冲突
在这里插入图片描述
接着vscode 我们可以很方便的查看冲突进行修改
在这里插入图片描述

修改后 我们就可以 add commit push了

每日一推共同进步
欢迎添加公众号前端从入门到SP
扫一扫添加哦
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值