赞
踩
将远程主机的最新内容拉到本地
git fetch origin
本例子是拉取远程分支BBB到本地新分支AAA,并切换到本地分支AAA。
git checkout -b AAA origin/BBB
这时候就会切换到本地分支AAA,这时拉取的代码并不是远程分支BBB的最新代码,还需要pull一下。
前提:在本地AAA分支
git pull --rebase
如果希望在本地创建BBB分支并联系到远程BBB分支。
前提:本地没有BBB分支
git checkout --track BBB
从远程分支 checkout 出来的本地分支,称为_跟踪分支(tracking branch)_。跟踪分支是一种和远程分支有直接联系的本地分支。在跟踪分支里输入git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在这些分支里运行git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。
$ git pull --rebase
git pull的默认行为是git fetch + git merge
git pull --rebase则是git fetch + git rebase.
$ git fetch
从远程获取最新版本到本地,不会自动合并分支
$ git rebase
git rebase,顾名思义,就是重新定义(re)起点(base)的作用,即重新定义分支的版本库状态。
$ git pull --rebase
git pull --rebase执行过程中会将本地当前分支里的每个提交(commit)取消掉,然后把将本地当前分支更新为最新的"origin"分支
来源:https://www.cnblogs.com/chenjunjie12321/p/6876220.html
在本地已有的分支中拉取远程分支BBB的代码
前提:已进入到本地需要拉取的分支中
git pull origin BBB --rebase
查看本地分支,其中带有“*”的是当前分支
git branch
查看本地和远程所有分支
git branch -a
切换本地分支
切换到本地分支BBB
git checkout BBB
查看远程分支
git branch -r
分支过多时,并不会全部显示,使用回车是查看下一个分支,使用q表示退出。
查看本地需要提交的代码
git status
红色的文件,就是要提交的代码
将文件提交暂存区
可以将.替换为具体的文件(路径和名称)
git add .
将文件提交到本地库
git commit -m '需要填写的信息'
如果是多人开发,需要进行
git pull --rebase
查看是否有冲突
git status
提交本地分支代码到远程分支
AAA是本地分支,BBB是远程分支
git push origin AAA:BBB
分为三种情况:
未使用 git add 缓存代码时
放弃本地某个文件的代码时:
git checkout -- filepathname
放弃本地所有代码,注意下边的"."
git checkout .
使用git add缓存代码,未使用git commit
放弃某一个文件
git reset HEAD filename
放弃所有文件,注意下边的"."
git reset HEAD .
已经用 git commit 提交了代码,还没有push。
git reset HEAD~
同时放弃本地修改过的文件和 git add 过的文件
#放弃全部
git checkout HEAD .
#或者放弃某个文件
git checkout HEAD <file>
https://blog.csdn.net/vichie2008/article/details/45577971
https://jingyan.baidu.com/article/29697b9106e552ab21de3c78.html
解决.gitignore无法忽略的文件以及自身被忽略的方法
git update-index --assume-unchanged PATH/FILE
恢复被忽略的文件
git update-index --no-assume-unchanged PATH/FILE
git branch -vv
git config --global --add pull.rebase true
git rebase --abort 会放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃;
git rebase --skip 则会将引起冲突的commits丢弃掉(慎用!!);
git rebase --continue 合并冲突,结合"git add 文件"命令一起用与修复冲突,提示开发者,一步一步地有没有解决冲突。
使用git pull --rebase后,会拉取远程代码,如果远程文件与本地文件有冲突,分支名会出现REBASE 1/1
(feature/teaching-referm) =》(feature/teaching-referm|REBASE 1/1)
使用git status 查看文件状态,可以看到“未合并的文件”
找到使用编辑器打开冲突文件,根据需要进行删除代码,其中的<<<HEAD和======和>>>>>也要删除
<<<<<<< HEAD
当前git所在分支的代码
============
要合并分支的代码
>>>>>>>> 39645e0443a07957dae
修改完冲突文件使用如下命令,分支名从(feature/teaching-referm|REBASE 1/1)变为(feature/teaching-referm)
注意:使用git add . 有时候并不能将修改后的文件进行添加,需要 git add 具体文件路径和名称。
git add .
解决完冲突并合并到分支上
git rebase --continue
冲突解决完成,可以进行将代码提交到远程等操作
在次分支中拉去主分支的代码
git pull 主分支名 --rebase
根据上边[1]和[2]解决冲突并提交
如果提交不上,需要强制提交
git push --force-with-lease origin 本地分支:远程分支
在一个分支上存储的代码可以在另一个分支上使用。
存储已修改的代码
git stash
拉取远程代码
git pull --rebase
回复原来修改的代码
git stash pop
#等同于下边两个动作
#git stash apply
#git stash drop
查看存储列表
git stash list
如果村里列表有3个已经存储的代码需要 ,现在需要使用第二个存储的代码
git stash apply stash@{1}
取消存储
在进行了一些其他的修改后,又要取消之前所应用储藏的修改。
git stash show -p stash@{0} | git apply -R
获取远程库中最新的数据
git fetch
创建分支
方式一:基于远程
分支BBB创建自己的分支AAA,成功后会自动切换到AAA分支
git checkout -b AAA origin/BBB
方式二 :以本地
分支BBB为基础,创建分支AAA
git checkout BBB #切换到本地的BBB分支
git checkout -b AAA #创建并切换到AAA
写好代码后,可以推送自己的分支AAA到远程库
git push origin AAA:AAA
git push origin --delete [branch_name]
将本地分支AAA的代码强制推送到远程分支AAA上
git push --force-with-lease origin AAA:AAA
删除远程分支的文件或文件夹:https://blog.csdn.net/sunbinkang/article/details/104901064
在本地找到要删除的远程分支的文件,将其放置到其他地方(如果本地也不需要,则直接删除)
将本次删除暂存区的改动提交
git commit -m 'xxx'
提交到远程分支
git push origin 本地分支名:远程分支名
当需要拉取A分支,却拉成了B分支,可以使用以下方法回退。
会放弃合并,回到rebase操作之前的状态,之前的提交的不会丢弃;
git rebase --abort
重新拉取代码
git pull origin 远程分支名 --rebase
切换到master上
git checkout master
将hotfix合并到master上
git merge hotfix
git merge master
引用日志信息只存在于本地——这是一个记录你在你自己的仓库里做过什么的日志。
查看引用信息
git reflog
查看第五次具体做了什么
git show HEAD@{5}
只从git仓库中移除文件,使git不再跟踪文件
git rm --cached [fileName]
git remote
git remote show [remote-name]
feature/fixbug
是基于develop
创建的 (git checkout -b feature/fixbug origin/develop
),分支feature/fixbug
推从到远程的feature/fixbug
(git push origin feature/fixbug:feature/fixbug
)回退到上一次git 操作
git reset --hard HEAD^
回退到某一次操作:先使用git log查看,找到某一个commit生成的SHA-1,然后使用命令
git reset --hard SHA-1的值
git commit --no-verify -m "commit"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。