其实用Github Desktop就足以应付当前的需求了,但好像对于程序员来讲不够“专业”和“优雅”。
学习资料https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6。写的很好,这里将常用到的命令进行记录,有些太长的则直接引用。
初次配置信息
带--global为全局,单独配置在该项目目录下运行没有--global的命令来配置
git config --global user.name "Will_Zhu"
git config --global user.email [email protected]
检查配置信息
git config --list 显示所有配置
git config user.name
git config user.email
获取帮助
git help
git
man git-
获取Git仓库repository
从现有目录中初始化仓库:先在终端中进入目标文件夹下git init
克隆现有的仓库git clone [url]local_repository_name
如果不指定local_repository_name则在当前路径下生成和url中一样的文件夹,也可克隆本地的仓库,url为目标仓库路径后加.git。
检查当前状态git status
跟踪新文件、将已跟踪的文件放到暂存区git add file
git diff 查看尚未暂存的具体修改内容
git diff --staged或git diff --cached 查看已暂存的将要添加到下次提交里的内容
指定git编辑器
win: git config --global core.editor"'C:\Program Files (x86)\Microsoft VS Code\code.exe' -w"
mac:
写入环境变量(不写入则mac重启后会之前的设置会失效):
https://blog.csdn.net/Edai9508/article/details/6006269
https://code.visualstudio.com/docs/setup/mac
提交更新
git commit 启动默认编辑器,输入本次更新的说明
git commit - m message 直接附带说明
git commit -a 自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过git add的步骤
撤销
git reset HEAD fileName 取消暂存的文件,将文件变为changes not staged for commit
git checkout -- fileName 恢复到上次提交时的内容
git rm file 删除指定文件,也可单独使用rm,反正都要git commit
git clean -f 恢复到上次commit的样子
git log 查看提交历史
git log -p 显示每次提交的差异,可再加上数字指定显示最近的提交,如git log -p -2显示最近2次的提交内容差异
git log --graph 以图表方式显示
具体内容https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2
远程仓库
git remote 查看已经配置的远程仓库服务器
git remote -v 显示需要读写远程仓库使用的git保存的简写与其对应的URL
gitremote add
git fetch
git fetch --all 抓取所有远程仓库。
git push origin master 将本地的推送到远程仓库
git remote show origin 查看远程仓库
git remote rename
git remote rm
标签
标签分为轻量标签(lightweight)与附注标签(annotated)。
轻量标签只是一个特定提交的引用。git tag v1.0 -m "my version1.0" 其中-m可有可无
附注标签是存储在Git数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮箱、日期。并且可以被GNUPrivacy Guard (GPG)签名与校验。通常建议创建附注标签。git tag -a v1.0 -m 'my version1.1' 其中-m必须有,没有会弹出编辑器让写。
默认情况下,git push 命令不会传送标签到远程仓库上,上上传必须手动git push origin
git tag 查看已有的标签
git show
git tag -d
git push
Git别名--略
分支
git branch 查看本地所有分支,参数--merged查看那些分支已经合并到当前分支,参数--no-merged查看那些没有合并到当前分支的分支,参数-a查看包括远程仓库的所有分支。
git branch
git checkout
git log --oneline --decorate 查看各个分支当前所指的对象
git mergetool 使用图形化工具来解决冲突。
远程分支
git ls-remote 显示远程引用的完整列表
git checkout --track
git checkout -b
git branch -u
git branch -vv 列出所有本地分支并包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否领先、落后或是都有。
git push
git push
关于变基 https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA