一、创建新仓库
创建新文件夹,打开,执行:
git init (初始化)
来创建新的Git仓库
从远程库克隆:
git clone git@github.com:Yan-Zhi-Liang/learngit.git
二、添加和提交
⭕️ 第一步:提出更改(添加到暂存区),执行:
git add <filename>
或
git add .
⭕️ 第二步:提交改动 ,执行:
git commit -m "代码提交信息"
现在,你的改动已经提交到了 HEAD , 但还没到远端仓库
三、推送改动
⭕️情况一:你的改动现在已经在本地仓库的 HEAD 中了。执行如下命令以将这些改动提交到远端仓库:
git push origin master (origin代表远端仓库,master代表本地的一个分支仓库)
可以把 master 换成你想要推送的任何分支
⭕️ 情况二:如果你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器,可以使用如下命令添加:
git remote add origin <server> (<server>例子:git@github.com:Yan-Zhi-Liang/learngit.git)
将你的改动推送到所添加的服务器
四、分支
分支是用来将特性开发绝缘开来的。在你创建仓库的时候,master 是“默认的”分支。在其他分支上进行开发,完成后再将它们合并到主分支上。
⭕️ 第一步: 创建一个叫做“feature_x”的分支,并切换过去 :
git checkout -b feature_x
或
git switch -c feature_x
⭕️ 第二步:切换回主分支 :
git checkout master
或
git switch master
⭕️ 第三步:合并分支 到 master:
git merge feature_x
⭕️ 第四步:再把新建的分支删掉:
git branch -d feature_x
除非你 将分支推送到远端仓库 ,不然该分支就是不为他人所见的:
git push origin <branch>
查看分支详情:
git branch
查看远程库信息:
git remote -v
五、解决冲突
发现冲突,执行:
git merge feature_x
存在冲突。
查找冲突文件:
git status
修改文件,添加与提交
用带参数的git log也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit
最后,删除分支:
git branch -d feature_x
六、标签
打标签一般是在master上打的
执行如下命令创建一个叫做 v1.0.0 的标签:
git tag v1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符
查看所有标签:
git tag
查看标签信息:
git show <tagname>
可以创建带有说明的标签:
git tag -a v0.1 -m "version 0.1 released" 1094adb
删除标签:
git tag -d v0.1
推送某个标签到远程,使用命令:
git push origin <tagname>
一次性推送全部尚未推送到远程的本地标签:
git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
即:git push origin :refs/tags/
可以使用下列命令获取提交 ID:
git log
或
git log --pretty=oneline
可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性
6.1 log
了解本地仓库的历史记录,最简单的命令就是使用:
git log
添加一些参数来修改他的输出,从而得到自己想要的结果。
某一个人的提交记录:
git log --author=bob
一个压缩后的每一条提交记录只占一行的输出:
git log --pretty=oneline
通过 ASCII 艺术的树形结构来展示所有的分支, 每个分支都标示了他的名字和标签:
git log --graph --oneline --decorate --all
看看哪些文件改变了:
git log --name-status
七、修改文件
丢弃工作区的修改:
git checkout -- <filename>
把暂存区的修改撤销掉,重新放回工作区:
git reset HEAD <filename>
丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
查看文件修改了什么内容:
git diff <filename>
八、配置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci 'commit -m'
git config --global alias.br branch
git config --global alias.mg merge
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
九、备注
两次大写的Z,可以退出 git 的日记文件