小村村长

导航

Git 常用命令记录每天来一遍防止忘记(练习记录中)

记录一些git 常用命令,每天敲一遍,防止忘记

1.$git add

后续补充

2.$git commit

git commit 文件名.txt  -m  这是第一次提交 
提交文件到当前分支

git push

git status

查看本地仓库状态,包含 当前分支名称, 文件变更状态等

git branch(操作的是commit基线 基点)

查看本地仓库的所有分支,带*号的表示是当前分支,注意:只展示本地有的

git checkout

git checkout -b <新分支名><模板名(默认当前所在分支名为模板)>
创建一个新的分支(在当前所在分支上复制出一个新的分支副本出来),继承当前分支的所有提交记录

git checkout  指定分支名
切换到指定分支

git rebase

$git rebase master

更新master分支(模板分支)上的commit内容到当前分支,

通常情况下,新的分支会和模板分支的提交记录会与模板分支保持一一致

rebase 将模板的提交记录更新到当前分支,(base就是指commit)
总结:以模板为基线分支,遍历副本提交的所有commit 节点进行merger操作
checkout一个模板后,如果模板更新了,那么本地checkout模板的基础也进行更新


当然:rebase过程也是可能存在冲突的,commit 5和后面的代码产生冲突了,也需要解决,然后再提交
git rebase master --这个时候冲突的话怎么办,解决冲突
git add --自动添加所有文件到暂存区
git rebase --continue --进行下一个节点的遍历和merger操作,直到遍历完成

git merge

git merge 分支名称 
合并分支的变更,而不是分支的内容,把2个不同分支的变更 合并到企业

基于master分支下 的1.0.0分支 复制了2个分支 分支A 分支B

A,B分支开发完成之后,审核员需要把A ,B分支都合并到1.0.0分支上
git checkout 1.0.0
git merge 分支A
git merge 分支B
在merge分支B的时候可能出现内容冲突,手动解决后,再次git commit

git cherry-pick

git stash

git log

git reflog

查看所有的提交历史记录,包含reset操作前前后后的,属于全量日志

git remote

git clone

$git clone git@github.com:villagechief/testrepository.git
从远端仓库克隆(下载)完整项目到本地(包含所有的分支)

git pull

git pull操作其实是git fetch 与 git merge 两个命令的集合。从远端先fetch再合并到本地当前分支
git pull 等效于先执行 git fetch origin 当前分支名(远端存在的分支), 再执行 git merge FETCH_HEAD.

git fetch

→→ 这将更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中

注意:git fetch 本地分支中不会自动创建 远端仓库新增的分支,仍然需要进行checkout

git push

$git push
推送当前分支内容至远端仓库里

问:如果当前推送的分支,远端仓库没有会怎么样?,当然会报错,如下

解决方案,参考提示说明操作

$git push -set-upstream origin bc-a
将bc-a作为本地当前分支的上游分支(等于变相在远端仓库创建了一个新的分支)

-set-upstream :设定上游分支
origin:远端仓库名
bc-a:设定本地当前推送分支的远端上游分支

设置好远端分支之后,就可以直接 使用$git push 提交本地当前分支的代码到远端上游upstream 对应分支
如果本地分支是直接从远端仓库进行  checkout出来的(命令是:git checkout -b 新的本地分支名 origin 远端分支名),那么就不需要设置上游分支,可以直接git push 

git reset

回退commit 的版本
$git reset 版本号hash值
三种 附加命令

$git reset 版本号hash值  --hard
不保存所有变更回退(还原到commit 的 id里面的原始内容,没有任何新增修改)

$git reset 版本号hash值  --soft
保留变更切变更内容出于Staged(已经是add 过后的状态,在暂存区)

$git reset 版本号hash值  --mixed
保留变更且变更内容出于Modified(已经commit过了,但是又进行了修改)

参考文档:

https://www.bilibili.com/video/BV1BE411g7SV?spm_id_from=333.999.0.0&vd_source=055192d1985d3ca452b1676f4cb8d92e
https://blog.csdn.net/json159/article/details/82714784

posted on 2022-08-23 22:03  小村村长  阅读(118)  评论(0编辑  收藏  举报