git&github常用命令

1Github操作 2

新建github个人仓库 2

Githubsshkey注册 2

Fork别人的项目 2

Pullrequest合并贡献者的操作 2

2Git的远程协作 3

Gitclone 用来获取远程仓库 3

Gitfetch 用来获取远程仓库中的所有分支和数据 3

Gitpull git fetch+git merge 3

Gitpush 将本地仓库推送到远程仓库 3

Gitremote 远程活动 4

3Git的本地操作 4

Gitinit 名称创建本地工作库 4

Gitlog查看日志 4

Gitshow查看具体提交的历史记录 5

Gitadd 将本地工作区的文件加入到暂存区中 5

Gitcommit 将暂存区中的文件进行提交 6

Gittag 用于进行标记,方便分享和还原 6

Gitcheckout 进行切换版本和创造/切换分支 6

Gitclear清除终端的无用内容 7

Gitstatus查看区别 7

Gitrm删除暂存区中不需要的东西 7

Gitmv工作区中移动和重命名文件 7

Gitdiff查看差异 7

Gitreset还原内容 8

Gitclean移除没有跟踪的文件 8

Gitrevert还原操作 9

Gitblame定位代码责任人 9

Gitbisect查找问题引入版本(采用二分法查找) 9

1Github操作

新建github个人仓库

点击newrepsitory按钮---------勾选增加README复选框------------------并增加gitignorelicence(随便选)

Githubsshkey注册

点击settings-----点击左边框的SSHKEY------------打开终端输入ssh-keygen-t rsa -C“8888888888@qq.com”---------------输入密码(88888)再重复输入---------------eval“$(ssh-agent -s)”------------ssh-add~/.ssh/id_rsa-----------输入passwd-----------vim~/.ssh/id_rsa.pub--------将内容复制,并黏贴到github上,起一个名字----------------ssh-Tgit@github.com-------------yes------完成。有的时候还是要要求你输入github的账号这个时候你可以输入在密码日记里的解决方法。


Fork别人的项目

在搜索框中输入需要查找的信息------在左边框中选择是用户还是工程-------点击进入到需要的工程-----点击fork按钮----再使用gitclone 命令就可以了------但此时提交的项目只能到自己的远程仓库中,而不是别人的项目中,使用pullrequest来进行合并


Pullrequest合并贡献者的操作

对于贡献者而言:一般会先创建一个分支来承载修改git checkout -bfeacher----进行修改----addcommit------gitpush origin feacher------点击createpull request-----可以填写一些信息------请求发送成功

对于项目拥有者而言:可以点击查看提交------如果觉得可以,就点击mergepull request------如果不行的话可以写下意见-------点击commenton this commit


2Git的远程协作

Git clone用来获取远程仓库

github上获得https的远程仓库地址-------------在终端输入gitcolne https//.......(地址)----再进入到本地的仓库中就可以进行操作了

Git fetch用来获取远程仓库中的所有分支和数据

Gitfetch获取远程终端的更新-------但这个时候head并没有指向更新的版本所以输入git merge origin/master(那个提交的位置)

Git pull git fetch+git merge

Gitpull 更新所以的内容

Gitpull origin feacher只更新某个具体分支

Git push 将本地仓库推送到远程仓库

当本地中没有一些远程服务器上的内容时,直接push会导致内容被覆盖-----要先使用gitpull将没有更新的内容先更新在merge-------此时会出现冲突-----解决冲突-----再使用gitadd gitcommit命令进行提交------这时会显示merge信息,输入:q!就可以了------gitpush


Gitpush origin master 单独push具体分支

Gitpush --delete origin feacher 删除远程分支

Gitpush origin :feacher推送空的分支到feacher分支上,也是删除远程分支

Git remote远程活动

Gitremote add upstreamhttps://............用来获得别人远程仓库的信息,upstream是对别人远程仓库的别名 https是别人远程仓库的地址

Gitremote -v 用来看看每个别名对应的仓库,一般origin指的是自己的远程仓库

用别名来指定对应的远程仓库例如git merge upstream/master

Gitremote rename upstream daydayup upstream改名字

Gitremote 用来查看有几个别名

Gitrm upstream 删除远程仓库

  1. Git的本地操作

Git init 名称创建本地工作库

Git log查看日志

Gitlog 输出完整的历史信息----q回车表示退出-----按空格向下翻页-----b向下翻页-----上下键进行单行移动

Gitlog -p输出每个commit之间的差异信息

Gitlog -p --test,txt查看单个文件的差异信息

Gitlog --stat输出每个commit差异的统计信息

Gitlog --oneline 每个log只显示一行

Gitlog --oneline --decorate 会打印出tag信息如图:

--graph用图形的形式表示

Gitlog --oneline --decorate --graph --all 查看完整的工作示意图


Gitlog -S常数名--oneline 查看这个常数名是什么时候产出的

Gitlog -G常数名--oneline 查看这个常数名的修改历史

Gitlog -L :函数名:git_log.c查看某个文件中的某个函数的修改记录

Gitlog -L 2.3:test.c查看某个文件23行的修改记录

Gitshow查看具体提交的历史记录

Gitshow 16e9e16查看此次提交的情况

Gitshow master^查看master指向的提交的第一个父提交

Gitshow master^2查看master指向的提交的第二个父提交

Gitshow --oneline master^2输出简短的信息

Gitshow --stat master^2输出提交所作出改变的统计信息

以上参数可以组合起来

Gitshow tag可以查看tag的信息

Gitshow --format=%T master^格式化查看

Git add将本地工作区的文件加入到暂存区中

gitadd test.txt 加入的只有test.txt这个文件

Gitadd . 将整个工作区添加到暂存区

Gitadd -A将整个工作区添加到暂存区

Git commit将暂存区中的文件进行提交

Gitcommit -m “the message you want to write” 将文件提交,并写下你要的备注


Git tag用于进行标记,方便分享和还原

Gittag -a v0 -m”tag for v0” 创建一个tag

git标签分为两种类型:轻量标签和附注标签。轻量标签是指向提交对象的引用,附注标签则是仓库中的一个独立对象。建议使用附注标签。
#创建轻量标签
$git tag v0.1.2-light

# 创建附注标签
$git tag -a v0.1.2 -m “0.1.2版本

创建轻量标签不需要传递参数,直接指定标签名称即可。
创建附注标签时,参数aannotated的缩写,指定标签类型,后附标签名。参数m指定标签说明,说明信息会保存在标签对象中。

使用gitpush --tags来将tag推送到远程仓库中(默认情况下不推送tag


Gitcheckout 进行切换版本和创造/切换分支

Gitbranch 对分支进行操作

删除分支:gitcheckout master(先切换到master分支上)---------gitbranch -d feacher删除了本地分支--------------gitpush --delete origin feacher删除远程分支

gitcheckout -b feacher 添加feacher分支

Gitcheckout --master.txt用暂存区的内容覆盖工作区的内容

Gitcheckout 123sdw2 --master.txt用某个版本的master.txt进行覆盖工作区和暂存区


Gitclear清除终端的无用内容

Gitstatus查看区别

Gitstatus 查看工作区与暂存区的区别

Gitrm删除暂存区中不需要的东西

Gitrm a同时将工作区与暂存区中的a删除

Gitrm --cached a 只删除暂存区中的a

Gitmv工作区中移动和重命名文件

Gitmv a ca重命名为c

Gitdiff查看差异

Gitdiff查看工作区与暂存区之间的差异

Gitdiff --cached查看暂存区与提交的区别

Gitdiff -- master.txt指定文件查看差异

Gitdiff HEAD~2比较当前工作区与其他历史提交的差异

Gitdiff --cached HEAD~2比较暂存区与某一历史提交的差异

Gitdiff HEAD HEAD~2比较指定历史提交之间的差异

Gitdiff --color-words用颜色标记不同


Gitreset还原内容

Gitreset HEAD master.txt(如果当前指向head可以不写head)将历史提交还原暂存区

Gitreset 231sdws master.txt

Gitclean移除没有跟踪的文件

Gitclean -n查看会帮忙移除的内容

Gitclean -f 强制删除

如果在.gitignore中有信息的话在gitclean -n就不会显示要删除这个此时:

Gitclean -n -X查看将要移除.gitignore中默认不清理的文件

Gitclean -X -f 移除.gitignore中默认不清理的文件

Gitclean -x -f移除.gitignore与其他要清理的文件

Gitrevert还原操作

Gitrevert 231siwd还原此次提交所做的操作

Gitblame定位代码责任人

Gitblame test.c查看文件每一行的责任人

Gitblame -L 1,3 test.c查看第一到第三行的责任人

Gitblame -L 5,+3 test.c 查看5,6,7行责任人

Gitbisect查找问题引入版本(采用二分法查找)

Gitbisect start开始bisect---------gitbisect bad表明当前历史记录有问题------gitbisect good34235we表明此次提交是没有问题的-----自动进入到中间的版本------重复标记good或者bad---------找到问题版本-----gitbisect reset结束bitsect这一过程

如果标记错误:

Gitbisect log>bisect.log查看log信息,并将其写入到bisect.log文件中-------------vimbisect.log-------------把错误的信息去掉--------------gitbisect reset退bisect------------git bisect replay bisect.log重复log的流程重新执行一遍














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值