一:从gitlib上fork自己的分支
1,在gitlib上指定项目选择fork操作(操作后会有自己的分支,地址是: ***)
2,git clone 地址
3,git remote -v可以看到只有origin的仓库
4,连接主干分支git remote add main 地址
5,git remote -v可以看到增加了main
6,git pull main master
7,后续commit & push 到自己的origin仓库,然后提交申请merge到master
二:从gitlib拉取分支代码
1、克隆分支:git clone -b 分支名 远程地址
2、新建属于自己分支:git checkout -b feature-自己名字首字母缩写-版本号(1210)
3、后续操作与之前提交一致,提交后,申请合并,但分支名称需选择自己的分支,与需要合并的分支
例子:
1、git clone -b dev_version_1_20191120 地址
2、git checkout -b feature-hcy-1210
3.在浏览器创建自己的分支Repository--Branches-new branch 分支名
4.第一次提交 git add ---git commit --- 【 git push --set-upstream origin 分支名】
5.以后提交直接git add ---git commit --- git push
三:代码提交步骤
1.git add . 【提交全部】或者 git add 类名 【提交单个】
2.git status 查看提交的代码
3.git commit -m "备注" 提交到本地库
4.git pull main/origin master 同步代码,如有冲突解决后再提交
5.git push origin/main master 提交代码到远程库
四:常用命令
1:remote 查看厂库信息
git remote 查看关联的远程仓库名称
git remote -v 查看关联远程仓库的详细信息
2:clone 下载项目
git clone 项目地址
3:pull 从仓库或者本地的分支拉取并整合代码
git pull main master 拉取远程服务器main的master分支
pull = fetch + merge
4: commit 将暂存区的代码提交到本地库
git commit -m '提交信息'
git commit --amend 当代码已经提交至服务器还需要修改时使用,不会生成新的commit id
5:push 将commit之后的本地库代码提交到远程服务器
git push <远程主机名> <本地分支名><远程分支名>
6:fetch 将远程主机的最新内容拉到本地,检查是否冲突后再用merge合并
git fetch 远程主机名 将远程主机的更新全部取回本地
git fetch 远程主机名 分支名 将远程主机的某个分支更新全部取回本地
eg: git fetch origin master
7:merge 把某个分支的代码合入主分支master
假设当前在dev-xx分支
第一步 切换到master 分支
$ git checkout master
第二步 git pull 更新到最新版本
$ git pull origin
第三步 推衍 git rebase
$ git rebase master dev-xxx
此时可能会有冲突需要手动解
第四步 同步 git push
git push origin dev-xxx
现在衍合已经完成,最后执行git merge 提交合并请求
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git pull origin
Already up-to-date.
$ git merge origin/dev-liuxueneng-airfly
..............
$ git push origin master
8:status 用于显示工作目录和暂存区的状态
git status
9:branch 查看分支信息
git branch 查看本地所有分支
git branch -r 查看远程所有分支
git branch -a 查看本地和远程的所有分支
git branch 分支名称 新建分支
git branch -d 分支名称 删除本地分支
git branch -d -r 删除远程分支,删除后需要推送到服务器
git push origin:分支名称 删除后推送至服务器
git branch -m 旧分支名称 新分支名称 重命名本地分支
10:分支切换
git checkout bugfix/lgb-3.1.1 【git checkout + 分支名称】
五:遇到过的问题
1:error: you have not conluded your merge(MERGE_HEAD exists)
办法一:保留本地的更改,中止合并->重新合并->重新拉取
git merge --abort
git reset --merge
git pull
方法二:舍弃本地代码,远端版本覆盖本地版本
git fetch --all
git reset --hard origin/master
git fetch
2.git clone err : checkout failed Filename too long
在windows 中使用给git 命令,出现文件名过长问题解决之道:打开git bash 执行 git config --system core.longpaths ture
3.error: The following untracked working tree files would be overwritten by checkout
直接执行 git clean -d -fx 会删除目录下的文件
git clean 参数
-n 显示将要删除的文件和目录;
-x -----删除忽略文件已经对git来说不识别的文件
-d -----删除未被添加到git的路径中的文件
-f -----强制运行
git clean -n
git clean -df
git clean -f
建议使用 git clean -d -f