感谢原带我的技术老大(曹XX),他是一位非常值得尊敬的大佬。哈哈,大多是他整理给我的,我后续有添加。给大家唠。
基本的git操作如下:(常用的为主,不包括所有命令,有兴趣的自己找找资料看,打*号的为比较少用的)mac用终端就可以,windows请下载一下git的命令行工具如tortoise git等
1. 克隆到本地:git clone本地有文件后,进入文件,
例如:克隆项目https://gitlab.gfitgo.com:8090/Gfit-Web/gfit-home/tree/master到本地。
git@gitlab.gfitgo.com:Gfit-Web/gfit-home.git(是你的当前项目的ssh)
git clone git@gitlab.gfitgo.com:Gfit-Web/gfit-home.git
2. 从远程仓库更新到本地:git pull
3. 更改内容后更新(更新前先提交用3.2的命令)到远程仓库:git push
3.1 一般更改后可能会增或删文件需要更改文件结构,一般使用"git add ."就可以,也可以在提交时加上"-a"参数
3.2 一般更新前需要提交本地的改动:git commit -m "提交的内容的简短描述" (加上-a 就是 git commit -a -m "xxx")
4. 查看本地分支:git branch (查看远程的加上 -r)
4.1 创建新的本地分支:git branch [分支名]
4.2 在不同的分支间切换:git checkout [分支名]
4.3 删除本地分支:git branch -d [分支名]
下面两步一起
*4.4 获取本地没有的远程分支:git fetch origin
*4.4获取并切换本地,没有的远程分支git checkout -b develop origin/develop
*4.5 更新本地分支到远程:git push origin [分支名]
*4.6 合并本地另一分支到当前分支:git merge [分支名]
5. 查看当前git的状态:git status (一般就看看现在是在哪个分支上啊,有没有跟远程仓库同步啊之类的)
6. 查看上次提交的日志:git log -p -1 (查看最近一次提交的改动,-2就是最近两次)
7. 提交到临时的工作栈中:git stash (一个觉得没什么用,但实际上还是会用到的命令,特别是在pull的时候跟本地改动有冲突的时候)
*7.1 查看临时工作栈:git stash list
*7.2 重新恢复到某个工作栈:git stash apply [index]
*7.3 恢复上个工作栈并从栈中移除:git stash pop
8. 查看本地版本:git tag (查看远程的加上 -r)(这个本人用的比较少,就不多写了)
9. 查看区别:git diff (不加参数是比较与暂存区的区别,diff有多种用法,详细就不展开了)
常用命令
git config user.name(打印本地仓库使用者的名称)
git config --global user.name "zhailili"(修改本地仓库使用者的名称)
git config user.mail(打印本地仓库使用者的邮件名称)
冲突
git pull --allow-unrelated-histories
版本回退:(已提交到远程)
Git log
git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96
强制推送本地到远程(覆盖远程):git push -f
删除远程指定文件:
git rm -r --cached a/2.txt //删除a目录下的2.txt文件 删除a目录git rm -r --cached a
git commit -m "删除a目录下的2.txt文件"
git push
Note:
用-r参数删除目录, git rm --cached a.txt 删除的是本地仓库中的文件,且本地工作区的文件会保留且不再与远程仓库发生跟踪关系,如果本地仓库中的文件也要删除则用git rm a.txt
A,clone项目并建立本地分支(同远程分支名一样),然后在项目里创建文件夹并上传(文件夹里不能为空)
1,clone项目到www中,并进入到项目中(在www根文件夹中执行命令):git clonegit@gitlab.gfitgo.com:GFit/managerment.git
cd managerment/
2,建立本地分支:
git branch -r(查看所有分支)
git checkout -b 1.0.1 origin/1.0.1 (在本地建立分支)
3,把创建的新文件上传
git add . (增/改/删文件,任何文件及文件夹的添加修改)
git commit -a -m "test"(提交本地改动,并备注)
git commit -a -m "test"
git push (上传)
备注:
git status(查看状态:如果有错误的话)
git branch(查看分支)
git log -n 1()
常见问题:
1, 查看本地分支:git branch
3,查看远程分支:git branch -r
4,拉取远程分支到本地,比如拉取wx-gfit:git checkout --track origin/ wx-gfit
查看就会发现本地出现了这个分支:
5,切记,每个项目一个分支,修改项目之前一定要切换到那个分支!:git checkout question
6,然后才开始修改项目。完了之后提交。
git add . (增/改/删文件,)
git commit -a -m "test"(提交本地改动,并备注)
git commit -a -m "test"
git push (上传)
7,提交完成后,merge到develop,然后测试修改(上面的步骤循环),所有完成后merge到master。大功告成!
q&A
1, mergr异常原因,一般每个分支(版本)代码不同,merge时出现冲突。所以需要手动用git 把代码提交到那个分支(一般时develop),比如把wx-gfit分支上的代码放到develop上(在本地放),然后develop上提交就行。
Lock问题:rm -rf .git/index.lock