git 基本操作
仓库地址: git@gitlab.xxxxx.com:root/xxx.git
----------------- 准备工作 -----------------
打开/etc/hosts在末尾另起一行,添加一行下的边内容保存,退出(可以复制粘贴)
命令vim /etc/hosts 添加内容10.18.95.7 gitlab.xxxxx.com
生成公钥:ssh-keygen(剩下可以直接回车直接掠过)
查看公钥:cat ~/.ssh/id_rsa.pub复制内容,管理员添加到git服务器
到工作项目目录下:
!!! 删除原来项目目录下的 .git 以及 .github文件夹
然后: git init # 初始化
----------------- 设置工作 ------------------
git config --global user.name “yourname”
git config --global user.email “youremail”
添加远程仓库: git remote add origin git@gitlab.xxxxx.com:root/xxx.git
----------------- 多分支git操作基本流程-----------------
code下载:
1. 查看当当前分支:git branch 或者 git branch -av
2. 创建工作分支(如果没有): git checkout -b <name>
2-1. (如果在工作分支上,则略过)切换到工作分支(我的xwk):git checkout xwk
3. 下载代码:
git clone git@gitlab.xxxxx.com:root/xxx.git
git pull origin develop (可选,但是一般先拉取一下是最好的)
4. 上传代码:
项目目录下:
git add .
git status (可选)
git commit -m "此处书写提交的是什么更改或新增"
git status (可选)
以上是自己的提交部分,这时候是提交到缓存区,如果接下来pull的时候有冲突,
记得git stash和 pull完毕之后, git stash pop
如果没有提交git add, git commit, git stash,缓存区没有,pull下来的直接把本地代码覆盖,新写的代码就没有了!!!!
如果提交git add, git commit, 缓存区有,将缓存区的保存了,然后pull,pull完毕,发现刚才提交的都被覆盖了,继续git stash pop,新代码就提交上去了
git pull origin <your_branch_name>
5. (慎重)合并某分支到当前分支:git merge <branch_name>
6.git push origin master或者develop (强制提交使用-f)
----------------- 建议 -----------------
要经常使用以下命令:
状态查看: git status -s(简短查看) 或 git status -v
配置查看: git config --list (查看你经常忘记的git URL;哪个分支;自己用户名和邮箱配置,简写git config -l)
分支查看: git branch 或者 git branch -a
----------------- 可能或用到的命令 -----------------
删除分支:git branch -d <name>
设置git push和pull的默认分支: git branch --set-upstream-to=<remote>/<dev> <dev>
git diff #尚未缓存的改动
git diff --cached #查看已缓存的改动
git reset HEAD -- file 取消缓存已缓存的内容
1. git branch dev remotes/origin/dev #先将远程gitlab上创建的分支在本地别名化
2. git checkout dev #使用git checkout命令切换到dev分支下
3. git branch -av #查看当前分支,发现本地有了dev分支了(上面设置过的分支别名)
4. git checkout -b develop #创建本地并切换到develop
修改远程仓库地址的方法有三种
查看:git remote -v
1.修改命令
git remote origin set-url [url]
2.先删后加 (好用,优先使用)
git remote rm origin
git remote add origin [url]
3.直接修改config文件
删除分支
删除本地release 分支:
git branch –d 分支名
删除远程release 分支:
git push origin :分支名
版本回退
git reflog
git reset --hard 1094a
删除远程文件而不删除本地文件
git rm 会将条目从缓存区中移除
默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。 如果要在工作目录中留着该文件,可以使用
git rm --cached .或者 git rm -r --cached .(删除本地缓存)
删除我的git工程项目内的video文件夹包含其子文件夹
git rm --cached -r video
git pull 和git fetch的区别
git fetch:是将更新拉取到本地,并不进行合并;如果需要合并就要git merge
git pull: 更新代码拉取到本地直接合并,有时候有冲突会显示拉取冲突,一旦拉取冲突就要将自己代码新写未提交的地方add/commit/stash下,然后返回pull,然后stash pop, 然后push 上去
git pull = git fetch + git merge
.gitignore
不提交以下存在的文件夹
du -lh 查看大文件比如几G的数据导出文件,不要提交到git
.idea aaa_xwk/ aaa_xwk_data/ script/ 111xwk/ db/ test001/ venv *.pyc
video/