zoukankan      html  css  js  c++  java
  • git温习

    git init:将文件变成git仓库

    ls -ah:查看隐藏目录

    git add 文件1  文件2 。。。:将文件添加到缓存区

    git commit -m ‘提交说明’:提交到本地仓库一次  并说明这次更改的说明

    git status:查看当前仓库状态,有没有在缓存区没提交的文件,或则文件在缓存区还未提交到本地仓库,等等

    git diff 文件:如果你往了你修改了这个文件的什么内容,可以用这个命令查看这一次都做了哪些修改

    git log:查看提交记录(commit记录)

    git log --pretty=oneline:如果看git log查出来的提交记录眼花缭乱,就加上后面的这个参数,加上后只显示每次提交的说明

    版本回退

    git reset --hard HEAD^:版本回退到上一个版本

    git reset --hard HEAD^^:版本回退到上上个版本

    git reset --hard 版本号的前几位:版本回退后,又想返回到回退前的版本,记住版本号不用输完整,git自己会找(版本号:commit_id)

    git reflog:查看每一次提交的版本号,以防你想回退到回退之前的版本时,不知道版本号

     cat 文件:查看文件的内容

    git diff HEAD --文件:查看工作区与版本库里最新版本的差别

    git checkout --文件:可以丢掉工作区的修改,或则是丢掉最近一次git add 或 git commit的状态(其实是用版本库中的代码替换了工作区的内容)

    git reset HEAD 文件:将把暂存区的修改回退到工作区(工作区也就是未暂存之前,暂存区是.git隐形的文件)

    rm 文件:删除文件

    git rm 文件:删除版本库的文件(本地版本库),一般后面要git commit提交一下并说明是删除了文件

    本地仓库已经存在时跟新创建的远程仓库(github)关联

    git remote add origin github地址:将本地仓库与远程仓库关联起来

    git push -u origin master:将本地master分支推送到远程仓库(第一次推送到远程要加 -u 参数)

    git push origin master:第一次推送到远程后,以后只要本地有提交,就可以用这个命令推送到远程了

    最好是先创建远程仓库,将远程仓库克隆到本地

     记得创建远程仓库时,让它自动生成readme文件

    创建一个文件并 git init一下

    git clone 远程仓库地址:将远程仓库克隆到本地

     分支管理

    git checkout -b 分支:创建分支并切换到此分支(相当于以下两个命令)

    git branch 分支:创建一个分支

    git checkout 分支:切换到此分支

    git branch:列出所有分支,当前分支前面会有个*号

    git merge 分支:将此分支合并到当前分支

    git branch -d 分支:删除指定分支(不能是当前分支)

    git push origin --delete 分支:删除远程分支

     git log:查看一下提交列表(按q键退出)

    git log --graph --pretty=oneline --abbrev-commit:查看分支合并的情况

     git merge --no-ff -m "merge with no-ff" 分支:不用git的Fast forward模式,将分支合并到当前分支(因为fast forward模式,删除分支后,会丢掉此分支的信息)

    git stash:将正在开发的代码存储起来,(当我们发现一个bug,需要另外创建一个分支来修复bug时,但这时候的任务不能完成也不能提交,此时就用到git stash,用过这个命令后,git status是正常的,之后就可以创建新分支去修改bug了,当修改完bug,再回到原来分支继续自己的任务)。

    git stash list:查看工作区用git stash存起来的内容列表

    把git stash存在工作区的内容恢复:

    1、git stash apply:将在工作区存储的代码恢复(但stash内容并不删除)

    1.1、git stash apply stash@{0}:恢复指定的stash内容

    2、git stash pop:删除stash存在工作区的内容

    也可以通过一个命令完成上述两件事(恢复工作区的内容,并删除stash)

    git stash pop:恢复用stash存在工作区的内容,并删除stash

    git branch -D 分支:强行删除分支,(若新建的分支,还未合并到其它分支,用git branch -d 分支   是删除不了的,必须换成大写D强行删除)

     git remote:查看远程仓库的信息

    git remote -v:用来显示更详细的远程仓库的信息

    推送到远程

    git push origin master:把本地master分支推送到对应远程的master分支

    git push origin dev:把本地当前分支 推送到对应远程的dev分支

     抓取分支

    场景:小伙伴,从远程克隆了你的项目,但这位小伙伴默认只能看到master分支,此时他在本地创建了与全程对应的dev分支,并且在上面添加了代码,并且推送到远程了,而自己此时dev分支也想推送到远程,但我们git push origin dev时,会报错提示我们需要用git push将远程的dev拉取下来,当我们去拉取时,又提示我没有和远程dev分支简历关系。(因为此时远程的dev分支是小伙伴推上去的,当然和自己没关系),此时我们用git branch --set-upstream-to=origin/dev dev命令,和远程的dev分支建立链接。然后再git pull 拉取远程dev代码,成功拉取后提示有冲突(必须的),然后手动解决冲突,在推送到远程

    git branch --set-upsteam-to=origin/dev dev:和远程的dev分支建立链接

    git pull:拉取远程代码

    git checkout -b 分支 origin/分支:在本地创建与远程分支对应的分支(git checkout -b dev origin/dev)

    变基操作

    当有人在我们之前将代码推送到远程时,我们也打算将代码推送到远程,此时我们git push origin master(吐送到远程会失败),原因就是别人先一步把代码推到远程了,然后我们需要git pull拉取一下远程,再推送(有可能有冲突,解决就行)。但是我们推送上去后,git log 查看提交记录,发现提交记录会分叉,很乱。此时我们就可以用到git rebase命令了,记住是发现有人在我们之前把代码推送到远程时,马上执行git rebase命令,再拉取,再推送,提交历史会变成一条还直线,就不会那么乱了

    git rebase:将提交历史变成一条直线,实际是调了一下两人的提交顺序。

     标签管理

    切换到想打标签的分支,如git checkout master

    git tag v1.0:给master分支打个V1.0标签

    git tag:查看当前分支的标签

    若之前提交时忘了打标签,可以git log --pretty=oneline --abbrev-commit查看一下提交历史,主要是要版本号(commit.id)

    git tag v0.9 f52c633:给f52c6633的这次提交打个v.09的标签

    git show v0.9:查看标签信息,也就是查看此次提交的信息

    git tag -a v0.1 -m "标签说明":还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:

     标签操作;

    如果标签打错了,也可以删除:

    git tag -d v1.0:因为创建的标签都只存储在本地,不会自动推送到远程,所以打错标签可以在本地安全的删除

    git push origin v1.0:将标签推送到远程

    git push origin --tags:一次性推送尚未推送到远程的标签到远程

    如果标签已经推送到远程,想删除,则先在本地删除,在删除远程的标签

    git tag -d v0.9:删除本地的v0.9标签

    git push origin :refs/tags/v0.9:将远程的v0.9标签删除

     也可以让本地仓库关联到码云上,请查看缪雪峰老师的git教程,很简单

    当你在本地关联的远程库时github时,此时想关联码云,需要先接触github的关联,在创建gitee的关联

    当然可以同时关联码云和github,只不过推送远程时,不是origin了,

    码云就是 gitee

    github就是github

    还可以自定义git

    如设置自定义命令

    设置颜色配置

    自己搭建一个git服务器,团队合作不用给git掏钱了。。。

    请百度,缪雪峰的官方网站

    git remote add origin 码云的仓库地址:将本地仓库与远程的码云长裤建立连接

    补充,git提交,报错说账号密码不正确而无法上传远程仓库时,大多是凭据问题,搜出 凭据管理(windows),更改一下用户名和密码即可

    补充:

     今天在网课上从开头 创建开了一个项目,然后上传到一个在远程新建的长仓库上面,过程如下

    1、项目创建好之后,执行git init  初始化本地仓库  (会生成.git文件)

    2、git add .  (点)将本地的所有文件添加到缓存区

    3、git commit -m "提交说明"

    4、在码云上新创建一个仓库,会生成 远程仓库路径

    5、git remote add origin 远程仓库地址       (连接上远程仓库)

    6、git push -u origin master   (初次上传远程需要带上-u参数,之后会让输入码云的账号密码,然后就会提交到远程仓库了)

    git clean -df   强制删除不再git管理下的文件

     当出现 :让输入时  可以输入 大写Q  退出

    如何用命令行 重置到某一次提交?

    1、首先 git log  查看提交记录,找到想回重置到的提交,比如说刚提交了一次,想重置到上一次的提交,那么需要找到上一次提交的 commit码

    2、git reset --hard  commit码(这个码不需要输全,输一部分git会自动匹配)

    3、git push -f 使本地和远程同步(不执行这一步,远程的并没有改变)

    命令行提交的步骤?

    1、git add .      将修改添加到缓存区

    2、git commit -m "注释"    将缓存区的内容提交

    3、git push origin 分支名   推送到远程

     如果我们已经commit了,还没有推送到远端,怎么退回去?

    1、git log  查到上次提交的提交id(commit码)

    2、git reset 上次提交的提交id  记住这里不是git reset --hard 带上--hard就不会保留提交前的更改了,等于直接重置到上次提交了

     。
     
     
     
     
     
    
    
     
     
     
     
     
    
    
    



  • 相关阅读:
    ctf web 百度杯”CTF比赛 九月场Upload i春秋
    ctf web 西普实验吧 登陆一下好吗 MySQL隐式转化 MySQL表达式的计算顺序
    Firefox 47.0.1
    给数组原型添加方法
    JS中几种常见的数组算法(前端面试必看)
    进制转换技巧解析
    redis通过6379端口无法连接服务器
    阿里云图片或文件上传 启动时报Error creating bean with name 'ossClient'问题
    20170628-三七互娱-测试工程师(提前批)
    20170514-vivo-软件工程师Java(提前批)
  • 原文地址:https://www.cnblogs.com/fqh123/p/10706185.html
Copyright © 2011-2022 走看看