git笔记

git 学习

git --version

常用的shell命令

pwd 					获取当前路径
ls						罗列文件或文件夹
ls -la					包含隐藏文件
cd .					当前路径
cd ..					上一级
cd ~ 					默认路径
cd /					根路径
mkdir 					创建文件夹
touch 					创建文件
rm						删除文件
rm -rf 文件名1 文件名2	强制删除
clear 					清空当前页面

配置用户名和邮箱

git config --global user.name "abc"
git config --global user.email 123@def.com
git config --list

管理git项目

git init			进入文件,初始化成本地仓库
git init abc		在当前目录创建abc文件,并初始化成本地仓库
git status			查看变动
git add def			add某文件
git add .			add所有未被追踪状态的内容
git commit -m "changedcontent"
git commit -am "add+commit"		仅对已被追踪的文件使用(add过的)
git log
git log -p -2		最近两次提交内容差异
git log --author
git log --oneline	一行显示
git log --graph
git log --graph --oneline
git log --pretty=online
git log --pretty=format:“%h - %an, %ar : %s”
git log --author="abc"
git diff 			modified后,追踪所有文件修改前后的区别
git diff 文件名
git diff --staged			git add后使用
git rm -r --cached 某文件	从add后状态变成未追踪的

文件忽略

.gitignore
/node_modules	忽略node_modules文件夹下所有文件
*.log			忽略.log结尾的文件
*.zip 			忽略.zip结尾的文件

未添加到缓存区,文件还原

git checkout -- [filename]		恢复到上一次的状态(add之后不行)

已添加到缓存区,撤销追踪与文件还原

git reset HEAD [filename]	撤销当前文件的追踪(从缓存区到add之前的状态)
git checkout -- [filename]

版本回退(会删除版本)

git reset --hard HEAD^			回退到上一个版本
git reset --hard HEAD^^ 		回退到上上一个版本
git reset --hard hash号			回退到指定hash版本

回到旧版本(保留所有的版本号)

git log
git checkout [hash] -- [filename]
git checkout [hash] -- .

建立切换删除分支

git branch						罗列分支
git branch [name]				建立分支
git checkout [branch name]		切换分支
git checkout -b [branch name]	建立并切换分支
git branch -d [name]			删除分支(在当前分支上,无法删除自身)
git branch -D [name]			强制删除分支(有过修改,未合并)
git branch 原brach名字 hash号	误删分支可以恢复,eg:git branch master hash号
git branch --merged | egrep -v "(^\*|master|develop)" | xargs git branch -d 		一次性删除合并后的分支,除了master和develop分支
git branch --no-merged | egrep -v "(^\*|master|develop)" | xargs git branch -D		一次性删除未合并的分支,除了master和develop分支

合并分支

git checkout master			在master分支下
git merge [branch name]		将branch name的内容覆盖给master
git merge [branch name] --no-ff			不用快转机制fast-forward (不忽略重复的版本,显示所有的版本号)
git merge --squash [branch name]		压缩(使用快转)
git merge [branch name] --no-ff --no-commit 	未提交
git merge  --no-ff --squash [branch name]		两个功能冲突!
git reset --hard ORIG_HEAD				恢复到没有合并之前
git branch --merged			查看已经合并的分支
git branch --no-merged		查看未合并的分支(不会显示当前分支)

合并时发生冲突

git merge [branch name]产生merge conflict
git status				查看冲突原因
1.git merge --abort			忽略合并
2.解决冲突,打开文件,选择对的或者都选也可以,并提交git commit,按i(insert)做出记录,按ESC,在冒号后输入wq(保存并退出)

查看版本线图

git log
git log --oneline
git log --oneline --graph
git log --oneline --graph --all
git log --oneline --graph -[number]		#最近[number]个版本线图

本地仓库推送到远端仓库

cd existing_folder
git init
git remote add origin(名字可以自己改) https://github.com/xxx.git
git add .
git commit -m "first commit"
git branch -M master
git push -u origin(名字可以自己改) master
查看远端		git remote
删除远端链接	git remote remove origin

主仓库作为服务器

创建一个仓库,名为:owner名+.github.io

获取远端项目

若download zip,则无仓库信息
新建文件夹,并cd进入
git clone --help
git clone [远端仓库地址]			克隆,并自动checkout到master分支
git clone --no-checkout [rename]	不自动切换,重命名
git clone --bare [远端仓库地址]	克隆一个裸的仓库(.git文件)
git clone [改裸仓库的本地地址]	可以克隆完整仓库信息
git pull						=git fetch+git merge
git fetch
git merge
git remote -v					查看fetch和pull的地址

删除远端分支

git branch -a			会显示远端追踪分支
git push origin --delete [branch name]

仓库迁移

git remote -v			查看fetch和pull的地址
git remote set-url origin [远端空的仓库地址]
git remote -v			查看发现url改变成远端空的仓库地址
git push --all			将本地仓库内容迁移至远端空的仓库

情景演练

A:

git init
touch .gitignore
git status
code .gitignore
git add .
git commit -m "first commit"
git log --oneline
git remote add origin [远端仓库地址]
git push  -u orgin master

B:

git clone [远端仓库地址]
git branch
git checkout -b developB
code .				作出修改
git status
git add .
git commit -m "develper B change"
git log --oneline
git checkout master
git merge --no-ff developB
git log --oneline --graph
git push --all

A:

git pull
git checkout -b developA
作出修改
git status
git add .
git commit -m "develop A change"
git checkout master
git merge developA
git push --all

使用SSH连接GITHUB/GITLAB

cd ~					默认路径下
ssh-keygen
cd .ssh
ls						id_rsa 私钥(解密)id_rsa.pub 公钥(加密)
cat id_rsa.pub			将内容复制到github/gitlab SSH KEY中
git clone [SSH地址]

fork

fork到自己的gitlab/github,然后开发,再提醒原作者看
merge requests—new merge request—compare branches and continue—submit merge request
原作者可以查看变动内容,并决定merge还是close

GitLab CI/CD

Continuous Integration
Continuous Delivery
Continuous Deployment
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值