增删查改+远程
增:
- 初始化git仓库:
git init
- 设置用户名和用户邮箱:
git config --global user.name "用户名"
git config --global user.email "用户邮箱"
--global表示设置为全局
- 添加文件到暂存区:
git add 文件名称
- 提交改动到版本库:
git commit
git commit -m '附带信息'
- 新增分支:
git branch 分支名称
- 新增tag:
git tag tag名称
git tag tag名称 commit的id
(对特定的commit打标签)
git tag -a tag名称 -m "说明文字" commit的id
(创建带说明的tag)
删:
- 删除分支:
git branch -d 分支名称
git branch -D 分支名称(强制删除)
- 删除stash记录:
git stash drop (删除最近一条stash记录)
git stash clear (清空stash记录)
- 删除文件:
rm 文件名称 (普通删除)
git rm 文件名称 (然后commit,这样就从版本库中删除该文件了)
- 删除tag:
git tag -d tag名称
查:
- 查看当前暂存区状态:
git status
- 查看commit记录:
git log
git log --pretty=oneline
(只显示一行commit信息)- 查看所有版本变更历史:
git reflog
- 查看分支:
git branch
- 查看标签:
git tag
- 查看标签信息:
git show tag名称
- 查看配置:
git config -l
- 查看文件改动:
git diff
git diff 文件名称 (查看特定文件的改动情况)
- 查看两次提交间的差异:
git diff commit的id commit的id
- 查看两个分支间的差异:
git diff 分支名称..分支名称
- 查看暂存区与版本库的差异:
git diff --staged
- 查看储存的工作现场:
git stash list
改:
- 切换当前分支:
git checkout 已存在的分支名称
git checkout -b 要新建的分支名称
- 合并分支:
先切换到要合并到的分支上,git merge 要合并的分支名称
- 非fast forward模式合并分支:
git merge --no-ff -m 'commit信息(禁用fast forward模式,merger时会生成一个新的commit)'
- 切换到某个tag:
git tag tag名称
- 切换到某次commit:
git checkout commit的id
- 回退版本:
git reset --hard HEAD^ (HEAD即当前版本,HEAD^即上个版本,HEAD^^即上上个版本,HEAD~100即往上100个版本)
git reset --hard commit的id (回退到特定id的版本)
- 别名:
git config --global alias.别名名称 实际操作
- 撤销工作区修改,还原工作区改动的文件到上次add/commit状态:
git checkout --改动文件名称(此时改动文件尚未add到暂存区)
- 撤销暂存区修改
git reset HEAD 改动文件名称
- 储存工作现场:
git stash (此时所有未commit的代码先储存起来,git status会发现暂存区无改动)
- 还原工作现场:
git stash apply (接着就应该删除stash记录)
git stash apply stash@{git stash list到的stash记录信息的数字号}
- 多人协同工作产生冲突:
查看冲突文件,更改该文件,然后commit
远程:
- 连接GitHub:
首先,生成SSH密钥对:ssh-keygen -t rsa
,一路回车,生成密钥对的位置自己搜,找到公钥和私钥,添加公钥到GitHub上,添加地址位于GitHub的settings界面,左侧找到SSH。新建SSH连接,输入公钥文件内容,ssh -T git@github.com
- 推送到远程分支:
git push origin 分支名称
- 拉取远程分支到本地:
git pull origin 分支名称
- clone GitHub项目:
git clone git@github.com:用户名称/仓库名称.git
- 关联本地已有项目到GitHub:
git remote add origin git@github.com:用户名称/GitHub上新建的仓库名称.git
,origin是给本地项目的这个远程仓库起的名字,默认是origin。- 查看远程仓库信息:
git remote -v
- 多人协作推送分支有冲突时:
先git push origin 要推送到的远程分支名称
–若失败–git pull
视图合并本地和远程分支–若失败,则设置本地相应分支与远程分支的链接:git branch --set-upstream 本地分支名称 origin/远程分支名称
,再pull,若有冲突,解决冲突,再push(若是没有共同祖先的两个本地和远程分支,想要pull是不行的,这时命令为git pull origin master --allow-unrelated-histories
,然后就可以push了)- 推送tag到远程:
git push origin tag名称
git push origin --tags
(推送全部未推送过的本地标签)- 删除远程标签:
git push origin :refs/tags/tag名称