持续更新中
1.branch
重命名分支
重新命名本地分支
git branch -m oldbranch newbranch #重命名分支
git branch -M oldbranch newbranch#如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名
重命名远程分支:
在git中重命名远程分支,其实就是先删除远程分支,然后重命名本地分支,再重新提交一个远程分支。
此处不再赘述 参考文章https://blog.zengrong.net/post/delete_git_remote_brahch/
查看分支
git branch #查看本地分支
git branch -a #查看远程分支及本地分支
git branch -r #查看远程分支
查看分支关联(远程与本地)
查看当前详细分支信息(可看到当前分支与对应的远程追踪分支):
git branch -vv
查看分支关联及所有分支
git branch -a -vv
查看当前远程仓库信息
git remote -vv
关联本地分支与仓库分支
方法一:(已经创建了本地分支)
git branch --set-upstream-to=origin/remote_branch your_branch
//等同于
git branch -u origin/remote_branch your_branch
方法二:(本地分支不存在,本地名称与远程名称不同)
git branch new_branch origin/remote_branch
// 或者
git fetch origin remote_branch:new_branch
// 上面👆这两种方法都不会切换当前分支;
// 如果想要创建分支的同时,切换到新分支
git checkout -b new_branch origin/remote_branch
方法三:(如果本地有远程分支 origin/name, 想拉取一个本地分支)
// git默认将创建一个同名本地分支,并将本地分支和远程仓库关联
git checkout remote_branch
远程分支不存在
// 如果远程仓库不存在new_remote_branch,将创建一个该分支,并关联local_branch
git push origin local_branch:new_remote_branch
切换关联远程仓库
// 删除关联仓库
git remote rm origin
//删除本地指定的远程地址
git remote remove origin # 删掉原来git源
// 再关联新的仓库(必须与上面命令联合使用要不了会失效)
git remote add origin XXXXXXXXXXXXX
这个时候
这个木有了需要重新指向head分支
真实案例:
git commit -m “Change repo.” # 先把所有为保存的修改打包为一个commit
git remote remove origin # 删掉原来git源
git remote add origin [YOUR NEW .GIT URL] # 将新源地址写入本地版本库配置文件
git push -u origin master # 提交所有代码
当代码库远程迁移后,修改本地代码关联的远程地址
git remote set-url origin http://jcode.cbpmgt.com/git/.git/
例子:https://blog.csdn.net/m0_37034294/article/details/79986198
修改本地代码关联的远程地址
1.列出远程库的名字
git remote
2.查看远程库详细的url地址名和对应的别名
git remote -v XXX
3.修改对应远程库地址
git remote set-url origin-name(仓库名) origin-url(链接地址)
4.添加远程库地址
git remote add name url
切换git的HEAD分支(原点)
git remote set-head origin some_branch
抓取远程的一个分支到本地
git fetch <remote_name> <branch_name> // 抓取远程的一个分支到本地
git 查看远程仓库,以及与本地仓库的关系:
git remote show origin
本地分支的添加
git branch 分支名称 //添加分支
git checkout -b 分支名称 //添加并切换分支
添加远程分支
git branch aa #本地添加新分支(如果已经有则不需要,线上不可有)
git push origin aa #会将本地分支同步到线上如果线上没有将重新创建
分支删除
删除本地分支
git branch -d 分支名称 #删除分支
git branch -D 分支名称 #强制删除未合并分支
删除远程分支
git branch -d -r 远程分支名称 #删除远程分支
但是有时候 它无法删除 会提示not found
在Git v1.7.0 之后,可以使用这种语法删除远程分支:
$ git push origin --delete
删除tag这么用:
git push origin --delete tag
否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :
这是删除tag的方法,推送一个空tag到远程tag:
git tag -d
git push origin :refs/tags/
两种语法作用完全相同。
此处文章-》https://blog.zengrong.net/post/delete_git_remote_brahch/
查看当前git的配置
cat .git/config
-------------------------------------------------------网上经验----------------------------------------------------------
删除不存在对应远程分支的本地分支
假设这样一种情况:
我创建了本地分支b1并pull到远程分支 origin/b1;
其他人在本地使用fetch或pull创建了本地的b1分支;
我删除了 origin/b1 远程分支;
其他人再次执行fetch或者pull并不会删除这个他们本地的 b1 分支,运行 git branch -a 也不能看出这个branch被删除了,如何处理?
使用下面的代码查看b1的状态:
$ git remote show origin
- remote origin
Fetch URL: git@github.com:xxx/xxx.git
Push URL: git@github.com:xxx/xxx.git
HEAD branch: master
Remote branches:
master tracked
refs/remotes/origin/b1 stale (use ‘git remote prune’ to remove)
Local branch configured for ‘git pull’:
master merges with remote master
Local ref configured for ‘git push’:
master pushes to master (up to date)
这时候能够看到b1是stale的,使用 git remote prune origin 可以将其从本地版本库中去除。
更简单的方法是使用这个命令,它在fetch之后删除掉没有与远程分支对应的本地分支:
git fetch -p
git pull详解
git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并。
一句话总结git pull和git fetch的区别:
git pull = git fetch + git merge
git fetch不会进行合并执行后需要手动执行git merge合并分支,而git pull拉取远程分之后直接与本地分支进行合并。更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。
基本用法:
git pull <远程主机名> <远程分支名>:<本地分支名>
例如执行下面语句:
git pull origin master:brantest
将远程主机origin的master分支拉取过来,与本地的brantest分支合并。
后面的冒号可以省略:
git pull origin master
表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并。
上面的pull操作用fetch表示为:
git fetch origin master:brantest
git merge brantest
相比起来git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并。
Helped me -url:=====
https://blog.csdn.net/m0_37034294/article/details/79986198
https://blog.zengrong.net/post/delete_git_remote_brahch/
https://www.cnblogs.com/zeo-to-one/p/8367801.html
https://www.cnblogs.com/taohuaya/p/10761799.html
/*one good for git/
https://www.cnblogs.com/miracle77hp/articles/11163532.html