Git基础命令02

距上次写Git基础命令总结01篇已经有一段的时间,今天趁着周末就写下02篇。

01篇总结的从远程库拉取代码,并在本地修改,提交到本地版本库的流程。今天就总结下利用git在本地创建版本库并推送到远程GitHub的过程。

常用命令

git init

使用git init [project-name],就可以在命令行当前目录下创建你输入名称的本地版本库了。是不是很简单?剩下的只需要使用git add和git commit命令,就可以在本地库做文件操作了。并使用git status查看当前版本库的状态。
如果想要和远程仓库关联,我们这里使用GitHub,需要登陆到GitHub,“Create a new repo”创建一个新的Git仓库,执行git remote add origin git@github.com:HycJack/learngit.git,这里是我的GitHub地址,你可以改成自己的。
把本地库的所有内容推送到远程库上:git push -u origin master,首次需要-u,以后每次提交可以使用git push origin master。如何需要去掉每次输入用户名密码,需要配置帐号信息,创建本地SSH。

git diff

这个命令是用来比较工作目录中当前文件和暂存区域该文件之间的差异,也就是修改之后还没有add暂存起来的变化内容。git status查看当前版本库的状态,git diff可以比较暂存区与工作区的文件修改情况。

git rm

 git rm file: 从暂存区移除文件,同时也移除出工作目录。
 git rm --cached: 从暂存区移除文件,但留在工作目录中。
 git rm --cached从功能上等同于git reset HEAD,清除了暂存区,但不动工作目录树.

git clean

 git clean是从工作目录中移除没有添加到暂存区的文件。通常的参数是git clean -d -f:-d表示同时移除目录,-f表示force,因为在git的配置文件中, clean.requireForce=true,如果不加-f,clean将会拒绝执行。

git mv

git mv [file-original] [file-renamed] 修改文件名,并且将这个改名放入暂存区,可以直接commit。

git pull 和 git push

提交完本地库之后,我们有可能需要取回远程仓库的变化,并与本地分支合并,或者上传本地指定分支到远程仓库。

git pull [remote] [branch]
git push [remote] [branch]

git branch

git拥有强大的分支管理能力。

git branch可以查看、创建、删除所有分支,git checkout用于分支切换。我们可以是用git baranch xxx创建分支xxx,git checkout xxx切换到分支xxx,也可以直接使用git checkout -b xxx,一步搞定。然后切换到其他分支,使用git merge xxx,可以将xxx的修改合并到当前分支。合并完成后,使用git branch -d xxx可以删除xxx分支

git merge

把一个分支merge进当前的分支。如果出现冲突,需要手动修改。

这里有个fast forward的问题,合并分支时,加上--no-ff参数就可以用普通模式合并,就像git merge --no-ff -m "merge with no-ff" dev,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

git tag

git tag -a <name> -m "message" commit_id创建一个标签,并加上说明文字,默认打在当前分支,即HEAD,也可以指定一个commit id;

git tag可以查看所有标签

git show <name>查看标签信息

01和02篇暂时把一些命令总结一下,之后03篇准备还是想阮一峰大神一样整理一份常用Git命令清单,便于快速查询。

参考链接:

Git 
更新时间:2020-12-06 10:41:08

本文由 HycJack 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.hycjack.cn/archives/git基础命令02
最后更新:2020-12-06 10:41:08

评论

Your browser is out of date!

Update your browser to view this website correctly. Update my browser now

×