Git常用操作
本地基本操作
用户信息
git config --global user.name "username"
git config --global user.email "username@xxx.com"
创建本地库
git init #使用某个目录作为git存储库,先进入这个目录,执行这个命令
git init newDir #创建目录并作为git存储库
添加工作区文件到暂存区
git add file1 file2
git add . #命令执行目录下的所有文件,包括子文件夹中的文件
git add -u #添加版本库已追踪的更新文件
git add -A #添加版本库已追踪和未追踪的文件
提交暂存区文件到本地库
git commit -m "注释说明"
git commit --amend #修改注释说明,输入这个命令后会出现修改区域,注意只能修改最近提交的注释
git commit -a -m "注释说明" #修改的跟踪文件一步完成添加到暂存区和提交操作
恢复文件到工作区
git checkout -- file1 file2 #把暂存区文件恢复到工作区
git checkout 指定版本号 目标file #从版本库中指定版本文件恢复到工作/暂存区
执行这其中当中某个命令后相当于撤销了本地文件的更改,恢复到暂存区或者本地库一致的状态,这个操作比较危险,应特别注意!
取消&删除&移动暂存区文件
git reset file1 #从暂存区取消git add的文件,这个操作并不会改变本地版本库。
git rm -r -n --cached ./ #预览要取消跟踪的文件
git rm --cached file1 #从暂存区移除并取消跟踪文件
git rm file1 #删除暂存区、git分支库和工作目录git跟踪的指定文件
git mv file dir #移动暂存区文件到指定目录
版本库回退到之前的一个提交
git reset --soft head^ #只将本地版本库回退到之前的一个提交,也可以将head^指定成commit-id
git reset --mixed head^ #只将本地版本库和暂存区回退到之前的一个提交
git reset --hard head^ #将本地版本库、暂存区和工作区回退到之前的一个提交
恢复回退掉的提交
git reset --hard commit-id #可以通过git reflog命令查看commit-id信息
本地辅助操作
查看工作区状态
git status
git status -s #简略的显示改动
git status -uno #未被版本库跟踪的文件不显示
查看提交记录
git log
git log file #指定文件的日志
git log --pretty=oneline #只显示提交的commit-id和说明
git log --graph #可以看到分支合并图
查看所有操作记录
git reflog
文档对比
本地分支操作
查看分支信息
git branch #列出本地的分支
git branch -r #查看远程分支
git branch -a #包括远程的分支
创建&切换分支
git branch dev #创建dev分支
git checkout dev #切换到dev分支上
git checkout -b bug #创建bug分支并切换到bug分支上
合并分支
git merge dev #合并dev分支到当前分支
git merge --no-ff -m "注释说明" branch #不管有没有冲突文件都创建一个commit-id
使用rebase合并分支
git rebase dev #合并dev分支
git rebase --continue #解决冲突之后执行git add .,然后执行这个命令继续合并分支
git rebase --skip #如果冲突文件解决了也git add .了,执行git rebase --continue命令没作用就执行这个命令
git rebase --abort #终止当前合并操作,使恢复到合并前的状态
merge和rebase的区别
merge 适用于团队合作分支的合并,rebase适用于对于本地个人使用的分支的合并
移动重命名&删除分支
git branch -m dev bug #将dev分支重命名为bug分支
git branch -d dev #删除dev分支,如果有提交的话需要合并后才能删掉
git branch -D bug #强制删除
储藏工作空间
git stash #储藏工作空间,如果希望把未跟踪的文件一起储藏,请先加到暂存区
git stash list #查看储藏记录
git stash pop #恢复并删除储藏记录
git stash apply #从最近一个储藏恢复
git stash apply stash@{1} #指定储藏恢复
git stash drop #删除最近的储藏
git stash drop stash@{0} #删除指定储藏
git stash branch branchName #从储藏中创建分支
本地标签、归档
创建标签
git tag v1.0
git tag -a v1.0 #进入文本框输入注释说明
git tag -a v1.0 -m '注释说明' #创建标签加注释说明一次完成
git tag -a v1.3 commit-id -m '标签说明' #适用提交记录创建标签
git tag #查看已有标签
git show v1.1 #查看标签版本信息
删除标签
git tag -d v1.0
归档
打包
远程库操作
克隆
git clone repoUrl
git clone repoUrl newDir #克隆远程库到本地创建的newDir目录
远程库关联
git remote add origin repoUrl
git remote rm origin #取消关联远程仓库
git remote rename origin o1 #重命名远程库
git remote -v #所有远程库列表
git remote show o1 #远程库详情
远程分支操作
git branch --set-upstream-to=origin/master master #master分支关联
git push origin dev #创建远程分支,直接将本地创建的分支推送即可
推送到远程分支
git push -u origin master #将分支master推送到远程库,第一次推送加-u参数关联master分支
获取远程更新到本地
git fetch origin #不会覆盖暂存区和工作区
git pull origin dev:dev
git pull --rebase origin master #解决推送时提示的failed to push some refs to git错误
远程标签操作
推送本地标签
git push origin v1.0
git push origin --tags #将所有未推送的标签推送到远程库
删除远程标签
git tag -d v1.0 #先删除本地标签
git push origin :refs/tags/v1.0 #再删除远程标签
远程协同操作
打补丁&使用补丁
git format-patch head^ #使用最近一次提交来创建补丁
git apply 补丁.patch #使用补丁
git am 补丁.patch #打完补丁并提交,一般先执行 git am --abort
git diff #对比文件,使用补丁后可以查看更改信息
patch -R -p1 < 补丁.patch #撤销使用的补丁
邮件补丁
待补充
远程环境设置操作
ssh-key设置
ssh-keygen -t rsa –C "账户邮箱" #使用这个生成秘钥
执行以上命令后,在操作系统的用户目录下找到.ssh文件,打开里面的id_rsa.pub,这个是公钥,将里面的内容拷贝,在游览器点开码云账户设置里面找到SSH公钥,添加公钥,标题随便填,然后把刚才拷贝的公钥粘贴到公钥value下,点确定,然后让你输入密码,完成!
配置别名
待补充
忽略特殊文件
待补充