Git常用命令细解

作为一个编程人员,虽然很多命令可以通过可视化工具操作,但熟练命令行也是很重要的基本技能。

Git版本控制系统

优点:方便追溯功能,方便代码合并

集中式版本控制系统(svn)

版本文件集中存放在中央服务器,使用者必须先从中央服务器拉取文件到自己的电脑,修改完成后再推送到中央服务器:

1、版本控制必须借助网络,网速慢时上传下载速度受到影响

2、中央服务器出现故障,则会受到比较大损失

分布式版本控制系统(码云 )

分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,工作的时候,就不需要联网,因为版本就在自己的电脑上面

1、分布式版本控制系统的安全性要高很多,因为每个人电脑里面都有完整的版本库,某一个人的电脑坏掉也没事,随便在其他的那里复制就行

2、强大的分支管理系统

官网上下载git

本人用的是mac版本的,windons

查看git版本,在命令行
git --version
后面就会出来版本号,则证明git已经下载好了
给git设置名字和邮箱
git config --global user.name "daxiu"
git config --global user.email "xxx@qq.com"
什么都没有反回则代表设置名字和邮箱成功
远端创建项目,本地拉取进行运用
克隆项目

复制远端的项目地址,进入自己文件需要存放的地点

$ git clone 远端地址
luoshundeair:Desktop luoshun$ git clone https://gitee.com/daxiu888/cash.git

可能会需要输入账号和密码

Username for 'https://gitee.com': 账号名字
Password for 'https://daxiu888@gitee.com': 账号密码

这样的你就把远端的项目给克隆到自己的电脑上面了

在我们克隆下来的文件夹中新建你需要书写的代码,将代码储存在暂存区,再把暂存区的代码提交到当前分支

git add ./
git commit -m 新增index.html文件
出现下面,则代表添加到本地成功
[master d701529] 新增index.html文件
 1 file changed, 12 insertions(+)
 create mode 100644 daxiu.html

然而我们现在的代码只是在本地,需要添加到远程

git push

这样就添加到远程成功啦~~~~~

项目是团队合作,所以大家可能都会更改项目,每次我们提交的时候都需要5个步骤命令

把代码增加到暂存区
git add ./

把暂存区的代码提交到当前分支
git commit -m 新增index.html文件

拉取远端
git pull

提交到远端
git push
本地创建项目,上传到远端,进行运用

在终端中进入文件夹

git init
后面出现
Initialized empty Git repository in /Users/luoshun/Desktop/bendi/.git/
则代表初始化成功

编写代码后,增加到暂存区

git add a.html(增加的名字)

把暂存区的代码提交到当前分支

 git commit -m 新增a.html
 出现
 [master (root-commit) 023120e] 新增a.html
 1 file changed, 12 insertions(+)
 create mode 100644 a.html
 则代表增加成功

查看提交暂存日志

 git log
 出现
 commit 023120ec4ff65ecfcd77e90094d87375da1ebef2 (HEAD -> master)
 Author: yangxiu <904376130@qq.com>
 Date:   Sun Mar 8 22:17:51 2020 +0800
 新增a.html
可以查看提交明细


git shortlog
也可以查看日志(只是没有这么明细)
按q键退出

查看作者明细

git config --list

把本地和远程合并起来

git remote add origin 仓库地址
git remote add origin https://gitee.com/daxiu888/cash.git

把本地库文件和远程库文件进行合并(必须指定分支),并且远程仓库已存在代码记录,并且那部分代码并没有和本地代码进行相关联

git pull origin master --allow-unrelated-histories
出现很多```
我们按键盘上的esc
在输入:wq就可以了
有一些+++++

合并后提交代码

git push -u origin master

这样本地就和远程已经合并啦

git的分支

分支的概念:工作需要从主线上分离开来,以免影响开发主线,这个时候就需要开启新的分支

git保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照,

在进行提交操作的时候,git会保存一个提交对象(commit object),该提交对象会包含一个指向暂存内容快照的指针,在需要时通过指针快速重现此次保持的快照

git 分支的新建和切换

查看当前git有多少远程分支

git branch -r
 目前只有master这个分支
 * master

查看当前git有多少本地分支

 git branch
 目前只有master这个分支
 * master

查看本地和远程全部有哪些分支

git branch -a
绿色的是本地的,红色的是远程的
* master
  remotes/origin/master

新建分支

git  branch dev
现在我们再查看
git branch -a
则多了刚才我们新建的分支(但是还是在我们的master分支上面)
dev
* master
  remotes/origin/master

切换分支

 git checkout dev
 这样则代表切换分支成功
 M	oo.html
Switched to branch 'dev'
在查一下git branch -a(现在就在我们的dev分支上面了)
* dev
  master
  remotes/origin/master

这个时候我们修改文件,并且增加,他是在dev分支上做的修改。和master分支没有关联

当我们切换到master分支上

 git checkout master

发现master分支上。项目里面的内容没有的到任何的改变

当我们想要新增一个分支,并且直接切换到新建的分支上面

 git checkout -b dev2
 当我们再查看分支情况的时候 git branch -a
   dev
* dev2
  master
  remotes/origin/master
我们则新建了一个dev2分支了,并且已经切换到上面了
git分支的合并

当我们再dev分支上写好了,需要全部合并到master分支上面

我们先切换到dev分支

git checkout dev

把dev分支提交到暂存区

git add ./
git commit -m 完成dev


我们再切换到master分支

git checkout master

把dev分支的代码合并到master上面(本地)

git merge dev

在把master推送到远端。就完成了

如果本地有的分支需要直接发到远端作为分支

git push origin dev:dev
在查看
  dev
  dev2
* master
  remotes/origin/dev
  remotes/origin/master
  远端上也有了dev分支
git分支的处理

同一个代码多个人修改了,而git并不知道保存哪个版本

通常咋git pull和git merge命令时。出错时我们则需要解决冲突

需要在本地修改完成,在推送上去

git的版本追溯

查看所有的版本提交

git log

回退到上一个版本

git reset --hard HRAD^

回退到两个版本

git reset --hard HRAD^^

回退到自己想要的版本

git reset --hard <commit_id>
commit_id:是通过我们git log打出来的版本信息上面的Merge:oldid newid///的newid

记录我们所有的操作记录(想回到哪个版本,就根据id回退到自己想要的版本)

git reflog

当我们回退版本以后,需要提交到远端【通过强制推送到远端】

git push -f 

git文件忽略

在文件夹目录建立.gitignore文件,里面填写自己需要忽略的文件

.DS_Store
node_modules/
unpackage/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
!/unpackage/
/unpackage/

如果是已经跟踪了版本,后续再新建的.gitignore文件,则手动加入了文件,但是没有忽略,这时候需要手动清楚本地的跟踪(例如:node_modules文件夹)

git rm -r --cached node_modules
git add .
git commit -m 'update .gitignore'

补充命令

新建文件夹

mkdir "文件夹名字"

查看文件夹下面有哪些文件

ls

新建文件

touch '文件名'

删除文件

rm -rf '文件名' 不可恢复
rm '文件名'   普通的删除

修改后查看不同

git diff '文件名'

拉取所有分支

git fetch

打开当前文件下的所有文件

open .

打开当前文件下的指定文件

open . ' 文件名字'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值