一 远程分支问题
1.1 将本地仓库与新的远程库建立连接
ba
fatal: remote origin already exists
(1)查看远程分支状态信息
bash
git remote -v
git 查看远端主机详细配置信息
bash
git remote show origin
(2) 删除远程连接
bash
git remote rm origin
(3) 建立新的远程连接
bash
git remote add origin git@github.com:(github名)/(git项目名).git
1.2 初始化推送本地到远程
bash
git push -u origin "master" #git push <remote> <branch>
查看本地分支与远程分支状态
bash
git branch -a
1.3 远程拉取与推送
1.克隆拉取远程分支
git clone -b 分支名仓库地址
2.拉取分支
当我想从远程仓库里拉取一条本地不存在的分支时:
git checkout -b 本地分支名 origin/远程分支名
例如: 切换远程分支
git checkout -b release origin/release-9.4
若成功,将会在本地创建新分支dev2,并自动切到dev2上。
如果出现提示:
fatal: Cannot update paths and switch to branch 'dev2' at the same time. Did you intend to checkout 'origin/dev2' which can not be resolved as commit? 表示拉取不成功。我们需要先执行
git fetch
其中,git fetch
然后再执行
git checkout -b 本地分支名 origin/远程分支名
2.上传本地到远程分支
设置git push和git pull的默认分支:
git push --set-upstream origin 分支名
更为简洁的方式是在push时,使用-u参数
git push -u origin <远程分支>
-u参数会在push的同时会指定当前分支的默认上游分支;
二 本地分支
2.1 查看分支
bash
git branch #查看分支
git branch -a #查看当前远端分支情况
git checkout origin/xxx #选择远端xxx分支
2.2 分支冲突
解决方式:
- 查看冲突文件
git status
- Git用
<<<<<<<
,=======
,>>>>>>>
标记出冲突内容
2.3 常见情况
经常会遇到本地分支和远程分支关联的情况,最常见以下2种情况:
1.远程新建了一个分支,本地没有该分支
这种情况下使用git checkout --track origin/branch_name
后,本地会新建一个分支名叫 branch_name ,并自动跟踪远程的同名分支 branch_name。
2.本地新建了一个分支,远程没有该分支
这种情况下使用git push --set-upstream origin branch_name
,可以在远程创建一个 branch_name 分支,本地分支会自动跟踪该分支。后面再对该分支使用 push 和 pull 就会自动同步,无需再指定分支。
三 放弃修改
- 本地修改了一些文件 (并没有使用 git add 到暂存区),想放弃修改
-
单个文件/文件夹:
git checkout -- filename
-
所有文件/文件夹:
git checkout .
- 本地新增了一些文件 (并没有 git add 到暂存区),想放弃修改
单个文件/文件夹:
rm -rf filename
所有文件:
git clean -xdf
[谨慎操作] 本命令删除新增的文件和文件夹,如果文件已经已经 git add 到暂存区,并不会删除!
四 gitignore文件管理
4.1 gitignore文件更新
Git更新ignore文件直接修改gitignore是不会生效的,需要先去掉已经托管的文件,修改完成之后再重新添加并提交。
第一步:
bash
git rm -r --cached . #去掉已经托管的文件
第二步:修改自己的igonre文件内容
第三步:
bash
git add .
git commit -m "clear cached"