参数配置
- 创建SSH key
ssh-keygen -t rsa -C "youremail@example.com" //在用户主目录下生成
- 添加SSH key
在github中找到setting选项,找到SSH key一栏,添加新的key,填上任意title,在Key文本框里粘贴id_rsa.pub文件的内容 - 设置全局参数(global),在这台电脑都起作用。如果不加global,只在当前仓库有效。
git config --list 显示当前的git配置
git config user.name 查看用户名
git config user.email 查看邮箱
git config --global user.name [username] //设置全局用户名
git config --global user.email [email] //设置全局邮箱
首次提交
- 仓库初始化
git init //初始化一个空的仓库
- 添加远程仓库
git remote add origin https://github.com/NEU-ZJX/learngit.git
- 添加到暂存区
git add [filename] //添加指定文件
git add [dir] //添加指定目录
git add -A //添加所有改动
git add . //添加新文件和编辑过的文件
git add -u //添加删除的文件和编辑过的文件
- 提交到仓库区
git commit -m “message” //暂存区提交到仓库区
git commit [filename] -m "message" //暂存区指定文件提交到仓库区
- 推送到远程库
git push [remote] [branch] //将[branch]分支推送到远程库[remote]
git push [remote] --delete [branch] //删除远程分支
git push [remote] [tagname] //推送某个标签到远程库[remote]
git push [remote] --tags //一次性推送所有尚未推送的本地标签
版本回退
- 查看版本历史
git log //查看当前分支的版本历史
git log --stat //查看commit历史,以及每一次commit发生变更的文件
git log --pretty=oneline //查看提交历史(单行模式)
git log -1 //查看最近一次的提交信息
git log -n //查看最近n次的提交信息
git log --graph //查看分支合并图
git log --graph --pretty=oneline //查看分支合并图(简单日志)
git reflog //查看命令历史,以便确定回到未来的哪个版本
- 版本回退
git reset [filename] //重置暂存区的指定文件,与上一次commit保持一致,工作区不变
git reset --hard //重置暂存区与工作区,与上一次commit保持一致
git reset --hard HEAD^ //回退一个版本
git reset --hard HEAD^^ //回退两个版本
git reset --hard [commitID] //回退到版本号为commitID的版本
git reset HEAD -- [filename] //把暂存区的修改撤销,重新放回工作区
- 撤销工作区修改
git checkout -- [filename] //撤销工作区filename的修改
git checkout . //撤销工作区的全部修改
- 删除已提交的文件
git rm [filename] //删除工作区文件,并放入暂存区
git rm --cached [filename] //停止追踪文件,但该文件会保留在工作区内
分支管理
- 查看分支
git branch //列出所有本地分支
git branch -a //列出所有本地分支和远程分支
git branch -r //列出所有远程分支
- 分支操作
git branch [branch] //创建分支
git branch -d [branch] //删除分支
git branch -D [branch] //强制删除一个还没合并(已经commit)的分支
- 切换分支
git checkout [branch] //切换分支
git checkout -b [branch] //创建并切换分支
- 合并分支
git merge [branch] //合并[branch]到当前分支
git merge --no-ff -m [message] [branch] //合并指定分支([branch])到当前分支,禁用Fast forward模式
- 储藏工作现场
git stash //储藏现场,只能储藏已被追踪的文件
git stash list //查看储藏起来的工作现场
git stash apply //恢复工作现场(不删除)
git stash drop //删除工作现场
git stash pop //恢复并删除工作现场
查看状态
- 查看差异
git diff [filename] //比较工作区文件和暂存区文件差异
git diff --cached [filename] //比较暂存区文件和上一个commit的差异
git diff HEAD -- [filename] //比较工作区与当前分支最新commit的差异
- 查看状态
git status //查看文件状态;在合并冲突时提示哪个文件冲突
- 查看修改时间
git blame [filename] //查看[filename]在什么时间被什么人修改过
- 查看提交用户
git shortlog -sn //查看所有提交过的用户,按提交次数排序
22.查看提交变化
git show [commit] //显示某次提交时,文件变化
git show [commit]:[filename] //显示某次提交时,[filename]的内容
下拉数据
- 下拉数据
git pull [remote] [branch] //取回远程仓库的变化,并与本地分支合并
git fetch [remote] [branch] //取回远程仓库的变化,但不合并
标签
- 查看标签
git tag //查看所有标签信息
git show [tagname] //查看某个tag信息
- 打标签
git tag [tagname] //为当前HEAD打标签
git tag [tagname] [commitID] //为[commitID]打标签
git tag -a [tagname] -m [message] [commitID] //为本地tag添加说明
- 删除标签
git tag -d [tagname] //删除本地标签