Table of Contents
1、git如何安装自行百度
2、基本命令场景
2.1 场景1.把独立工程代码合入已建立gitlab工程中
-
git clone http://dsfdsdidsafd.com:8080.git 工程到本地
-
cp需要上传到代码到clone的目录
-
git checkout branch 切换分支
-
git status 查看当前分支
-
git add ./[needtouploadCode] 添加所需要合入的代码
-
git commit -m "This is the code to upload." 添加注释
-
git pull origin [branchName] 更新现有工程
-
git push origin [branchName] 合入代码到远端
2.在master分支中撤销合入的代码,撤销部分合入到newFunc分支操作:
-
1.git revert <提交ID>
(先撤销master合入操作,commit回退到unstage阶段)
1.在gitlab--activity中找到提交记录:找到提交记录ID(在URL连接后面)
2.执行:git revert 998fc8cdbb513e6339adcd0e33523462562526
#2.1:如果失败,可能是尚有改动没有提交,尝试git status查看存
Note:
Untracked基本为需要忽略的文件,可以在gitlab中设置全局
可以看到是由于当前分支还存在变动及commit阶段的文件未被提交导致的,解决办法是先把commit阶段的回退到unstage
阶段 执行1:git reset HEAD init.py 可见:
[20:27:45] root:label git:(master*) $ git reset HEAD __init__.py Unstaged changes after reset: D wpe-etl-python/label/__init__.py M wpe-etl-python/label/self_support/label_entry.py
执行2:git status 可见 所有改动都回退到unstage阶段
执行3:git stash 保存该分支下改动到stash(缓存),可见此时已经无unstage阶段
#2.2如果没有失败,则继续
-
2.执行:git push origin master (在当前分支 push 本次改动)
-
3.执行:git checkout newFunc (切换到新分支)
-
4.执行:git pull origin newFunc(同步最新代码)
-
5.执行:git status (查看最新状态)
-
6.执行:git pull origin master (从当前分支拉取master分支代码,与master同步)
#1 此时可以通过 git log -3 查看master分支提交记录
-
6.1执行:git push origin newFunc (??????)
-
7.执行:git cherry-pick <commit ID> 把某次提交应用到当前分支
e.g. 假设master_a有一个87a97aca6ed91c0ce3666561eb6a7536f7431a52的提交,master_b也需要这个改动: git checkout master_b git cherry-pick 87a97aca6ed91c0ce3666561eb6a7536f7431a52 git add <xxx> git commit –m ‘xxx’ git push origin master_b
-
8.执行: git push origin newFunc 直接提交本次变更到当前分支
注意:本地push的修改实际是只是commit ID 对应的修改,并没有涉及到2.1中正在修改的变更
所以如果需要2.1中提到的master分支中为提交的变更也同步到当前分支,则需要执行:
git stash apply git commit -all git push origin newFunc
2.2 场景2-git 打标签
附注标签 在 Git 中创建附注标签十分简单。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:
1、git tag -a <版本号及其名称> -m "说明信息"
2、git tag “显示提交信息”
3、git push origin <tagname>
可能报错:RPC错误
原因:缓存值太小,远程便捷HTTP传输请求数据时最大的缓存字节数,默认时1M字节
git config http.postBuffer 524288000 然后才push
2.3 场景3-git命令行中中文字符显示错误
由于初始化时未设置格式,此时显示的是八进制格式字符,需要命令行设置:
git config --global core.quotepath false