本地和远程仓库常用操作
命令 注释
git init 初始化git仓库
git status 查看工作区/暂存区状态
git config user.name [用户名] 设置签名(项目级别)
git config user.email [邮箱] 设置邮箱(项目级别)
git config --global user.name [用户名] 设置签名(系统级别)
git config --global user.email [邮箱] 设置邮箱(系统级别)
git add . 添加当前目录的所有文件到暂存区
git add [file name] 被新建/修改/删除的文件(file name:当前git相对路径下/绝对路径下的文件)添加到暂存区
git rm [file name] 从暂存区删除指定文件(file name:当前git相对路径下/绝对路径下的文件)
git rm --cached [file name] 从暂存区中取消缓存对应的文件(file name:当前git相对路径下/绝对路径下的文件)
git commit [file name] 从暂存区中提交指定文件到本地仓库(会进入vim编辑器编辑本次提交的备注信息)
git commit 提交暂存区中所有的文件到本地仓库(会进入vim编辑器编辑本次提交的备注信息)
git commit -m [备注信息] [file name] 提交暂存区中指定的文件到本地仓库
git commit -a 提交所有暂存区修改和删除的文件,未被git管理的(没有git add的)不受影响
git log 查看本地版本记录(最完整的记录)
git log --pretty=oneline 查看本地版本记录(一行显示部分记录,版本号、提交备注信息)
git log --online 查看本地版本记录(一行显示部分记录,片段版本号、提交备注信息),只能显示当前版本和以前的版本(版本回退后,不显示回退版本索引值后的版本)
git reflog 查看本地版本记录(一行显示部分记录,片段版本号、前进后退步数N(HEAD@{N})、提交备注信息 )
git reset --hard [局部索引值] 本地仓库、暂存区、工作区基于索引值(片段版本号)前进后退
git reset --hard HEAD[^] 本地仓库、暂存区、工作区版本后退。多少个 ^ 后退多少步
git reset --hard HEAD~N 本地仓库、暂存区、工作区版本后退。N为正整数,表示后退多少步
git reset [方式] [局部索引值] 版本后退前进。方式:--soft -》只后退本地仓库 --mixed -》后退本地仓库和暂存区 --hard -》后退本地仓库、暂存区和工作区
git diff [文件名] 对比工作区指定文件的版本差异
git diff HEAD[^/~] 对比暂存区指定文件的版本差异
git branch 显示所有(本地)版本的版本名
git branch -a 显示所有(远程、本地)版本的版本名
git branch -av 显示所有(远程、本地)版本的版本名、索引值(版本号)、提交备注信息
git branch [分支名] 新建本地分支
git checkout [分支名] (当前本地分支)检出到指定本地分支。如果检出分支没有创建,但检测到存在对应分支名的远程分支,会新建一个本地分支指向该远程分支。如果本地/远程分支皆没有则报错
git branch -D [分支名] 强制删除本地分支
git push [远程仓库别名] -d [分支名] 删除远程分支
git push -f [远程仓库别名] [分支名] 强制回滚远程分支。注:如提示受保护分支,请在gitlab网站点击对应的 项目->Setting->Repositry->Protected Branches 删除对应受保护分支即可强制提交。
git checkout -b [分支名] 强制创建本地分支并切换到该本地分支。
git push --set-upstream [远程仓库别名] [分支名] 设置push 和 pull 的绝对地址。即每次push 和 pull操作都往该远程仓库的该分支进行操作。
git merge [分支名] 指定分支更新的内容合并更新当前分支内容
git remote add [远程仓库别名] [远程仓库地址] 本地创建远程仓库连接,fetch、push 操作执行到该远程路径
git remote -v 查看本地仓库指向哪些的远程仓库
git fetch [远程仓库别名] [分支名] 拉去远程仓库上的版本信息以及更新内容到git。注:该操作没有合并,需要输入git merge [远程仓库别名] [分支名] 进行合并
git push [远程仓库别名] [分支名] push本地仓库的更新到远程仓库上。如果设置了(git push --set-upstream [远程仓库别名] [分支名]) 别名和分支名可以省略
设置SSH免密登陆
1.移动到家目录(cd ~) 2.命令:ssh keygen -t rsa -C [GITHUB邮箱] 生成目录。注:已有目录可用rm -r .ssh删除目录 3.直接按回车使用默认值 4.移动到 .ssh 目录 查看公钥 (cat id_rsa.pub) 5.GitHub网站点击用户,点击SSH and GPG keys ,点击 New SSH key,把id_rsa.pub内容粘贴到key,点击完成。 6.添加SSH形式的远程仓库地址,git remote add [仓库别名] [仓库SSH地址] 7.提交代码 git push [仓库别名] [分支名]
跨团队开发步骤
1.登录github账号 2.获取到需要跨团队开发的项目的git远程仓库的地址 3.点击页面上的 Fork 项目 4.可以上像自己的项目一样操作,开发完毕之后给源项目的owner发起Pull Resquest(github)/Merge Resquest(gitlab) 5.fork项目的团队创建合并(pull/merege)请求,发送给源项目的owner 6.源项目的owner审核合并代码即可