博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git 使用总结
阅读量:4206 次
发布时间:2019-05-26

本文共 3836 字,大约阅读时间需要 12 分钟。

Git基本常用命令如下:

mkdir: XX (创建一个空目录 XX指目录名)

pwd: 显示当前目录的路径。

git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

git add XX 把xx文件添加到暂存区去。

git commit –m “XX” 提交文件 –m 后面的是注释。

git status 查看仓库状态

git diff XX 查看XX文件修改了那些内容

git log 查看历史记录

git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本

(如果想回退到100个版本,使用git reset –hard HEAD~100 )

cat XX 查看XX文件内容

git reflog 查看历史记录的版本号id

git checkout — XX 把XX文件在工作区的修改全部撤销。

git rm XX 删除XX文件

git remote add origin 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone 从远程库中克隆

git checkout –b dev 创建dev分支 并切换到dev分支上

git branch 查看当前所有的分支

git checkout master 切换回master分支

git merge dev 在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name 创建分支

git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时 也删除文件

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master Git会把master分支推送到远程库对应的远程分支上

回退

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,    使用命令git reset --hard commit_id    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

撤回

1.未add    命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:    一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;    一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。    总之,就是让这个文件回到最近一次git commit或git add时的状态。2.已add    Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:总结    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除

1.确实要删除文件    git rm filename    git commit2.误删 要恢复    git checkout -- filename

远程仓库

1.先有本地库再有远程库        新建远程库     ssh-keygen -t rsa -C "email"      在用户目录下生成id_rsa.pub公钥和id_rsa私钥     在github上 settings->SSH and GPG keys 页面  new sshkey 输入名称和公钥即可    添加远程库        要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;        关联后,使用命令git push -u origin master第一次推送master分支的所有内容;        此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;2.先有远程库再有本地库    要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。    Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

分支管理

Git鼓励大量使用分支:    查看分支:git branch    创建分支:git branch 
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d

其他:

git log --graph --pretty=oneline --abbrev-commit 分支合并图。 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

bug 分支

git stash保存当前状态        git stash list 查看保存状态        恢复:            1.git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除            2.git stash pop,恢复的同时把stash内容也删了        开发一个新feature,最好新建一个分支;        如果要丢弃一个没有被合并过的分支,可以通过git branch -D 
强行删除。 首先,可以试图用git push origin branch-name推送自己的修改; 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并; 如果合并有冲突,则解决冲突,并在本地提交; 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功! 如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建, 用命令git branch --set-upstream branch-name origin/branch-name。小结 查看远程库信息,使用git remote -v; 本地新建的分支如果不推送到远程,对其他人就是不可见的; 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交; 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致; 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name; 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突

标签

1. git tag name 新建标签 默认HEAD 可以指定commit id2. git tag -a tagname -m description 标签描述3. git tag -s tagname -m description PGP签名标签4. git tag 查看所有标签5. git push origin tagname 推送一个本地标签6. git push origin --tags 推送所有7. git tag -d tagname 删除一个本地标签8. git push origin :refs/tags/tagname 删除一个远程标签

忽略特殊文件

1.忽略某些文件时,需要编写.gitignore;    .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!    A collection of useful .gitignore templates:    https://github.com/github/gitignore

转载地址:http://tvqli.baihongyu.com/

你可能感兴趣的文章
CSS之Responsive设计和CSS3 Media Queries的结合
查看>>
CSS之Responsive设计的关键三步
查看>>
CSS之七个高度有效的媒体查询技巧
查看>>
CSS之深入理解 flex 布局以及计算
查看>>
CSS之中间固定两边自适应宽度
查看>>
CSS之左定宽度右自适应宽度并且等高布局
查看>>
CSS之创建等高列布局之一
查看>>
CSS之创建等高列布局之二
查看>>
CSS之创建等高列布局之三
查看>>
CSS之两栏固定布局(一)
查看>>
CSS之两栏固定布局(二)
查看>>
CSS之Flexbox制作CSS布局易如反掌
查看>>
纯CSS实现锚点跳转位置上下偏移的办法
查看>>
CSS之flex需要知道的一切(一)
查看>>
CSS之flex需要知道的一切(二)
查看>>
CSS之Multi-columns的列数和列宽
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>