Git使用小结

在远程创建分支

在远程上新建分支:
在这里插入图片描述
复制克隆地址
在这里插入图片描述

git clone 复制的地址, 选一个本地目录去执行:
$ git clone “地址”

查看所有分支
git branch -a

查看本地分支
git branch

强制更新分支
git fetch origin --prume

切换分支
git checkout -b origin/

切换回master分支
git checkout master

Clone指定分支,并且下载到指定目录下
git clone -b 分支名 git路径 “指定目录”

// 本地基于远程分支创建新的本地分支
git checkout -b newBranch origin/baseBranch

在本地创建分支

//创建新的本地分支
git checkout -b newBranch

//可以看到新建的newBranch 分支
git branch -a

//push 指令确定跟踪谁,一般来说我们都会使其跟踪远程同名分支,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会 track 该分支。后面再对该分支使用 push 和 pull 就自动同步。
git push --set-upstream origin branch_name

//如果本地branch name 和远程branch name 不一致的话,把本地分支跟远程分支建立连接关系
git branch --set-upstream-to=origin/ localbranchname remotebranchname


//再执行git branch -a,可以看到远程和本地都有新建的newBranch 分支

git push origin newBranch

回退已经push到远程仓库的代码

git log 找到想要回退的commit 号

使用 --soft 这样可以把修改项放回工作区,但是同时会带有各种merge 信息,
git reset --soft <commmit号>

hard 干脆直接, 直接把相关信息都删除
git reset --hard <commmit号>

编辑修改,再
git add ./

git commit -m “message”

注意,此处一定要加上force, 这样才可以覆盖掉你想要的回退的内容
git push --force

还有一种方式就是使用amend
这个命令是让我们可以对上一次提交有修改,可以修改文件也可以修改说明,不产生新的commit
git commit --amend

这样不用执行 git reset --soft 啦

fatal: not a git repository (or any of the parent directories): .git

执行完 git clone “地址”,
执行git branch
提示 fatal: not a git repository (or any of the parent directories): .git
这是因为找不到本地分支信息,需要切换到.git 文件夹的目录及下级目录才行

在这里插入图片描述

保证历史记录 图形 主线清爽,便于分支维护的做法

// 1 将本地更改内容放到暂存区
	git stash
// 1-1 查看暂存区更改内容
	git stash list
	
// 2 从本地开发分支 切到本地Dev 分支
	git checkout Dev
	
// 3 拉取Dev最新内容
	git pull
	
// 4 查看拉取的内容是否为最新
	gitk

// 5 创建本地分支 branchFolder/newbranch
	git checkout -b branchFolder/newbranch

// 6 查看本地分支
	git branch 

// 7 取回stash 的内容
	git stash pop 

// 8  查看最新更改的状态
	git status

// 9 将更改放到本地仓储
	git add ./

// 10 将更改提交
	git commit -m 'message'

// 11 将更改推到远端
	git push

// 12  将本地新建的分支同步到远端
	git push --set-upstream origin branchFolder/newbranch

// 13 查找新建文件夹内的分支
	 git branch |grep "branchFolder/"|xargs

// 14 删除新建文件和其内的所有分支
	git branch |grep "branchFolder/"|xargs git branch -d

git branch -d 会在删除前检查merge状态(其与上游分支或者与head)。
git branch -D 是git branch --delete --force的简写,它会直接删除。

更改关联的远程代码库地址

// 更新远程代码库地址
git remote set-url origin <remoteurl>

删除分支

//本地分支
//会在删除前检查merge状态
git branch -d 

//不检查merge状态,会直接删除
git branch --delete --force

//git branch --delete --force的简写
git branch -D 

// 删除新建文件和其内的所有分支
git branch |grep "branchFolder/"|xargs git branch -d

// 删除远端分支
git push origin --delete b1

//删除本地某个文件夹内的分支
git branch |grep  'branchFolder/' |xargs git branch -D

//删除远端文件夹内的所有分支
git branch -r | grep 'branchFolder/' | sed 's/origin\///g' | xargs git push origin --delete

//同步本地和远端分支
git fetch -p origin

使用npm 下载时,加上淘宝后缀,下载比较快
npm install --fegistry=http://registry.npm.taobao.org

切换分支时,用新分支的代码覆盖原分支的代码

// 强制采用新分支代码
git reset --hard origin/test

暂存区操作

// 将改动放在暂存区
git stash save ‘[messsage]’

//查看所有暂存内容
git stash list

//将暂存区上一次的保存内容取出,并继续保存在暂存区
git stash apply 

//将暂存区上一次的保存内容取出,并将暂存区内容删除
git stash pop 

//取出指定的暂存内容,并保留
git stash apply n

//取出指定的暂存内容,不保留,删除
git stash pop n 

merge

//切换分支
git checkout OriBrabch

//git merge:默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,建议采用这种方法
Git merge --no--ff  NewBranch
//处理冲突
Git add
git commit -m 'merge'
Git push

//查看保证版本演进 
Git log --graph

//查看git 操作历史记录
Git reflog

挑拣合并

//1. 切换到master分支
git checkout master

//2. 执行git cherry-pick 命令
git cherry-pick 32259aa35d0702d2d05c648938798f9a5bd4b921

//3. 再次执行git log命令就可以看到目标提交已经被合并到master上了
git log

//注意本地必须先有要pick 的这个分支,要不然会报错
bad object

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值