1.放弃本地修改
- 未使用 git add 缓存代码时。
可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。
- 已经使用了 git add 缓存了代码。
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。
- 已经用 git commit 提交了代码。
可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid
2.下载代码
git clone http://118.24.231.166/git/git/bs/bs-vue.git
cnpm install
cnpm run dev
3.切换分支
- 查看远程分支
git branch -a
- 查看本地分支
git branch
- 切换分支
git checkout -b hotfix origin/hotfix
4.提交代码
第一步:git add .
第二部:执行git cz或者git commit -m”提交内容的说明”
第三步:git pull --rebase(必须加rebase不然别人的代码会被覆盖)
第三步:git push
5.解决冲突
解决冲突后
git rebase --continue
git push
6.新建本地分支并与远程建立连接
基础:master-->dev--->feature/product
//查看远程分支
git branch -a
//创建本地dev分支
git checkout -b dev
//建立远程dev分支连接
git branch --set-upstream-to=origin/dev dev
//拉取代码
git pull --rebase
//创建本地feature/product分支
git checkout -b feature/product
//建立远程feature/product分支连接
git branch --set-upstream-to=origin/feature/product feature/product
//拉取代码
git pull --rebase
//如果出现冲突,解决冲突后,重定基址
git rebase --continue
//如果需要提交
git push
7.git add.时报错解决The file will have its original line endings in your working directory
//删除缓存
git rm -r -f --cached ./
//提交所有
git add .
//推入文件
git push -u origin master
8.删除文件后需要 git add -A, 光 git add. 不行
git add -A 保存所有的修改
git add . 保存新的添加和修改,但是不包括删除
git add -u 保存修改和删除,但是不包括新建文件。
git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:
1. 找一个干净目录,假设是git_work
2. cd git_work
3. git clone http://myrepo.xxx.com/project/.git ,这样在git_work目录下得到一个project子目录
4. cd project
5. git branch -a,列出所有分支名称如下:
remotes/origin/dev
remotes/origin/release
6. git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
7. git checkout -b release origin/release,作用参见上一步解释
8. git checkout dev,切换回dev分支,并开始开发。
10.git代码管理 放弃本地修改强制更新
git fetch --all
git reset --hard origin/master
git fetch 下载远程的库的内容,但是并未做任何代码合并的合并动作
git reset拉取远程master分支上的代码,
若是拉取其他版本代码,只需把master改为相对应的版本即可
11.解决IDEA configure Ignore没有生效
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
12.删除远程仓库中文件
git rm --cached.txt 删除文件
git rm -r .idea 删除文件夹
git commit -m 'delete .idea'
git push origin master
13.基于dev创建新的分支
//查看分支
git branch -a
//创建本地新分支
git branch dev-worldcheck
//查看分支
git branch -a
//检查一下仓库名称
git remote
//本地分支推上去,远程会自动生成同名新分支
git push origin dev-worldcheck
//将当前分支与远程某分支关联
git branch --set-upstream-to=origin/dev-worldcheck
//查看关联关系
git branch -vv
//推送代码
git add .
git commit -m 'your commit info'
git push origin dev-worldcheck
14.开发分支(dev-worldcheck)上的代码达到上线的标准后,要合并到 dev 分支
1.提交dev-worldcheck分支的代码
git add .
git commit -m"提交代码"
git pull --rebase
git push
1.切换分支到主分支
git checkout dev
2.拉取最新代码
git pull --rebase
3.合并dev-worldcheck分支到dev分支
git merge dev-worldcheck
4.推送代码(不要再拉代码了)
git push -u origin dev
15.当master代码改动了,需要更新开发分支(dev)上的代码
git checkout master
git pull
git checkout dev
git merge master
git push -u origin dev
16.(no branch, rebasing dev)
出现这样的问题不要慌,先看看git add . 后本地的记录,需要恢复一下代码
git checkout -b mydev
git pull origin dev
git push -u origin dev
17.git push后远程代码未更新
On branch mydev
You are currently rebasing branch 'dev' on '9efa120'.
原因是不在dev分支上,自己新创建了一个mydev分支
git checkout dev
git merge mydev
git push -u origin dev
18.IDEA Git 合并分支的部分提交到主干
在开发过程中不同需求迭代上线时我们需要在不同分支上开发。当某个分子的部分功能需要临时上线时,我们就要合并分支的部分代码带主干,这种情况应该如何实现呢?
我们需要用到Git的Cherry-pick功能
IDEA中使用Git的Cherry-pick功能合并分支的部分提交到主干
先将代码切换到主干-》右击项目-》Git-》Repository-》Merge Changes-》选择No commit-》Merge
右击项目-》git-》Show History-》在任意一个提交历史上右击-》Select in Git Log-》右击要合并的提交-》Cherry-Pick-》提交
以上操作就是合并分支部分代码到主干的过程。
19.Cherry-pick
-
git cherry-pick <commit id>:单独合并一个提交 git cherry-pick -x <commit id>:同上,不同点:保留原提交者信息。 git cherry-pick <start-commit-id>..<end-commit-id> git cherry-pick <start-commit-id>^..<end-commit-id>
20.删除本地分支
1 先切换到别的分支: git checkout release
2 删除本地分支: git branch -d dev
3 如果删除不了可以强制删除,git branch -D dev
21.git branch -a无法获取到所有的远程分支信息
git fetch origin
git branch -a