当前位置:   article > 正文

Git 基础命令与事件详解(基础版)_提交代码之前为什么要先fetch

提交代码之前为什么要先fetch

  我要出一篇 Git 总结!先讲一下大致步骤:

在这里插入图片描述


如果是第一次接触 git 请先克隆仓库:
1.在本地新建项目文件夹,例如在D盘根目录下D:\
md myapp
cd myapp
2.从远程git上拷贝下git@开头的url后,命令行输入:
git clone git@...
3.配置全局或此项目 用户名、邮箱地址:
全局配置:
git config --global user.name "kaixin"
git config --global user.email "21577...@qq.com"
此项目配置:
git config user.name "kaixin"
git config user.email "21577...@qq.com"

配置文件保存在:
C:\Users\Administrator\ 中,文件名:.gitconfig

非 master 分支提交代码

1. 将自己的代码更改添加到暂存盘
git add .

2. 将暂存盘里的文件更改提交一次
git commit -m "注释"

3. 将当前分支切换到 master
git checkout master

4. 查看当前分支
git branch
在这里插入图片描述
有 * 代表当前,如图,表示当前分支为 master 主分支

5. 拉取主分支代码
git pull

6. 将分支切换回 原来分支
git checkout + 原来分支

7. 将分支代码与主分支合并
git merge master

8. 将代码推送一次
git push

如果推送失败,可能原因是没有上游分支
git remote -v (查看是否添加了远程仓库)
git remote add origin + 仓库地址 (添加远程仓库)
git branch (查看本地分支)
git push origin + 想要推送的分支名(配置推送分支)

master(主分支)提交代码

1.提交代码之前,需要先从服务器上面拉取代码,防止自己覆盖掉别人的代码。
git pull
 如果是新项目,这一步要替换为
git init
 用来初始化项目

2.查看当前工作目录树的工作修改状态
git status
Untracked 此文件在本地储存库中,没有加入git 库;
Modified  此文件已修改,但没有进行其它操作;
Deleted   文件在本地删除,服务器没有删除;
状态

3.将状态改变的代码提交至缓存
git add -A  将修改后未被跟踪的代码提交至缓存;
git add -U  将修改后并被跟踪的代码提交至缓存。

4.将代码提交到本地仓库中
git commit -m "注释"

5.将代码推送到服务器端
git push
 如果是第一次推送代码,需要配置远程分支。
git push -u origin master  检测目标分支是否存在,若不存在立即创建并推送
git push origin master  推送到指定分支
 如果推送失败,可以 git remote -v 查看是否添加了远程仓库
 也可以使用 git push origin -f master 进行强制推送

常用命令

git init 初始化Git仓库
git pull 拉取数据并合并(前提是本地分支已经跟踪远程分支)
git status 查看当前仓库文件状态
git add. 添加文件到暂存区
git commit -m "本次提交备注" 提交暂存区的文件到本地仓库
git push <remote> <branch> 推送指定的分支到指定的仓库
git push 把本地仓库的文件推送到远程仓库
git fetch 拉取数据(并不会合并到本地)
gti fetch 仓库名 拉取指定仓库的数据
git remote add pb https://github.com/paulboone/ticgit
添加远程仓库(git remote add 名称 远程仓库地址)
git clone https://github.com/paulboone/ticgit
克隆远程仓库到本地(默认名称为origin 分支名为master)
git remote 查看对应的远程仓库
git remote -v 查看对应的远程仓库及URL
git remote add origin [url] 添加名称为origin 的远程仓库
git remote rm origin 删除名称为origin 的仓库
git remote set-url origin [url] 修改origin 仓库的远程地址
git remote show origin 查看远程仓库的详细信息
git remote rename old new 更改仓库名为old的名称为new

更新一次远程分支

git fetch --prune 更新
git branch -r 查看

git 如何修改最近一次的commit信息

git commit --amend
进入vim操作界面之后, 点击字母键 i 然后进入INSERT模式,然后对commit信息进行修改。修改完毕以后按下 ESC,敲击回车,输入 :wq 退出
然后执行 git log 会发现最近的一次commit信息被修改成功了

修改远程仓库地址

git remote set-url origin <new url>
修改名称为origin的仓库的地址。

让本地的分支跟踪远程分支

在此之前需指定分支push之后才能跟踪
先用git push -u origin master这种方式指定上游分支并提交一次后, 才能使用:
git branch --set-upstream-to=origin/master master命令,
git branch --set-upstream-to= 远程分支 本地分支。
示例:git branch --set-upstream-to=origin/local local
或者是:git branch -u origin/local 当前分支跟踪origin/local分支

分支

git branch testing 创建一个testing的分支
git checkout testing 切换到testing分支
git checkout -b <newbranchname> 创建分支的同时并切换到该分支
git merge <branchname> 将branchname分支与当前分支合并
git branch 查看现存分支
git branch -v 查看现存分支并显示最后一次提交
git branch --merged 查看哪些分支已经合并到当前分支
git branch --no-merged 与上相反
git branch -d <branchname> 删除分支
git branch -D <branchname> 强制删除分支(用于删除还未合并的分支)

远程分支

git branch -r 查看远程分支
git branch -a 查看所有分支(本地+远程)
git push origin --delete <branch> 删除远程分支

查看本地分支和远程分支的对应情况

git branch -vv

隐藏并存储改动文件

git stash隐藏并存储改动的所有文件,chekcout <branch>时可优先使用, 命令后加save ‘commit’ 添加备注,方便查找
git stash list 显示stash列表
git stash show 显示存储了哪些改动,默认是第一个,如指定显示,后面加stash@{num},例:git stash show stash@{1}
git stash show -p 显示改动的文件详细信息,默认是第一个,如指定显示,后面加stash@{num},
例:git stash show stash@{1} -p
git stash drop 删除存储,默认删除第一个, 可加stash@{$num}删除指定存储
git stash clear 删除所有缓存的stash
git stash apply 应用存储到git仓库,默认应用第一个,此操作不删除stash列表,应用指定存储同上
git stash pop 应用存储到git仓库并在列表删除该存储,默认应用第一个,应用指定存储同上

注: git stash只会存储在git版本控制器中的文件,如果是新增文件需先add到暂存区

常见问题小节!

1.误将代码提交到缓存中,
利用 git reset 撤回缓存中的代码。

2.误将代码提交到本地仓库中,
git reset -soft 版本号 回退到某个版本,只回退了commit 信息,不会改变已修改的代码;
git reset -hard 版本号 彻底回退到某一个版本,本地的代码也会改变为上一个版本内容。

3.git commit 提交时报错:husky>pre-commit(node...)...
分析:项目中使用了husky模块,它会在你提交的时候先执行严格模式,对代码进行检查,有error就会终止提交,这个操控严格模式的文件在
.git 文件夹下的 hooks 文件夹下,它叫 pre-commit
你可千万不要删掉它,否则你会遇到另一个复杂的多的问题,网上还没有人能把这个问题解决,我们不要动它,慢慢退回去,在git目录下输入:
git commit -m "注释" --no -verify
这条命令能让你 “先斩后奏,皇权特许!这就是西厂,够不够清楚”

4.git push 推送时卡住,检查网络原因,可能是网络较差,连接不到远程服务器。
在这里插入图片描述
5.git pull 本地出现冲突
  1)git stash //将代码先暂存到本地
  2)git pull //将gitlab的工程拉下来
  3)git stash pop //还原暂存的内容,并且解决冲突

6.git pull 报错 refusing to merge unrelated histories
如我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传。这时会发现 github 的仓库和本地的没有一个共同的 commit 所以 git 不让提交,认为是写错了 origin ,如果开发者确定是这个 origin 就可以使用 --allow-unrelated-histories 告诉 git 自己确定
git pull origin master --allow-unrelated-histories

呕心沥血,往后会不断完善,请给一个免费的小❤❤,转载要注明出处哦!

在这里插入图片描述
“我仍认为我们接受高等教育的目的是帮助我们的家乡摆脱贫困,而不是摆脱我们贫困的家乡。生如蝼蚁当有鸿鹄之志,为天地立心,为生民立命,为往圣继绝学,为万世开太平。”


推荐阅读:

CSS旋转魔方
CSS小鲨鱼
忍术!猫眼三勾玉
召唤神龙
拟态小象

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/968469
推荐阅读
相关标签
  

闽ICP备14008679号