Git学习笔记

其实用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 will_zyq@qq.com

 

检查配置信息

git config --list  显示所有配置

git config user.name

git config user.email

 

获取帮助

git help <verb>

git <verb> --help

man git-<verb>     win下无用

 

获取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 --stagedgit 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 <shortname> <url> 添加一个新的远程仓库并指定引用简写,一般叫origin,可添加多个远程仓库

git fetch <shortname> 将远程仓库内容抓取到本地,但无法直接看到,一般之后会用合并功能git merge origin/master origin库中的branch合并到当前branch

git fetch --all 抓取所有远程仓库

git push origin master 将本地的推送到远程仓库

git remote show origin 查看远程仓库

git remote rename <oldShortname> <newShortname> 修改添加的远程仓库的简写名

git remote rm <shortname> 移除远程仓库

 

标签

标签分为轻量标签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 <tagName>。一次性上传全部的标签git push origin --tags

git tag 查看已有的标签

git show <tagName> 查看标签信息与对应的提交信息

git tag -d <tagName> 删除本地标签

git push <remote> :refs/tags/<tagName> 删除远程仓库

 

Git别名--

 

分支

git branch 查看本地所有分支,参数--merged查看那些分支已经合并到当前分支,参数--no-merged查看那些没有合并到当前分支的分支,参数-a查看包括远程仓库的所有分支

git branch <newBranch> 创建一个新的分支,参数-d为删除分支,若该分支并未合并到其他分支,则需要用-D

git checkout <branch> 切换到该分支,加上-b则为以当前分支为蓝本创建一个新分支并切换

git log --oneline --decorate 查看各个分支当前所指的对象

git mergetool 使用图形化工具来解决冲突

 

远程分支

git ls-remote 显示远程引用的完整列表

git checkout --track <remote>/<branch> 创建一个跟踪指定远程仓库中的分支的同名分支,并切换到该分支。

git checkout -b <newBranch> <remote>/<branch> 创建一个分支,跟踪指定远程仓库中的分支,并切换到新创建到的分支。

git branch -u <remote>/<branch> 设置/修改已有本地分支跟踪远程仓库中的分支

git branch -vv 列出所有本地分支并包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否领先、落后或是都有。

git push <remote> --delete <branch> 删除远程仓库中的分支

git push <remote> branch -u 将本地的分支上传到远程仓库中(远程仓库之前没有该分支)

 

关于变基 https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

 

posted @ 2019-08-04 14:14  落星无尘_Will  阅读(254)  评论(0编辑  收藏  举报