zoukankan      html  css  js  c++  java
  • git常用命令

    ------------------------------------------------------------命名本地提交者名称-----------------------------------

     git config --global user.name "name"       加了--global参数就是当前机器所有库都使用这个名字

    注意,上面不设定名字的话,那么远程协助就不知道是谁提交的了

    ------------------------------------------------------------------------------------------

    把当前目录变成仓库

    git init
    1.查看文件修改了什么内容
    git diff 文件名
    如:
    git diff readme.txt

    1-1.查看工作区和版本库里面最新版本的区别
    git diff HEAD -- 文件名 (注意文件名和前面--有空格)
    如:git diff HEAD - - readme.txt


    2.让我们时刻掌握仓库当前的状态,看什么文件被修改了
    git status命令

    看什么文件被改了,接着看文件具体修改了什么内容分别用1~2命令

    3.把当前这个目录变成Git可以管理的仓库
    git init命令

    4.把文件添加到仓库轨道(实际上就是把文件修改添加到暂存区)
    git add 文件名
    git add . 后面加一个.意思是所有改动的文件都添加到暂存区

    5.把文件提交到仓库里
    git commit -m "备注"

    先要把要保存的文件放入仓库轨道,然后再提交到仓库里,使用4~5命令

    6.查看版本记录,回到过去
    git log
    git log --pretty=oneline (精简化只显示 id+备注)
    后记: 使用命令查看日志后,按q 即可退出

    7.查看文件
    $ cat 文件名
    如:$ cat readme.txt

    8.回滚版本
    git reset --hard commit_id

    9.要重返未来,查看命令历史 每次commit的命令记录
    git reflog

    10.文件在工作区的修改全部撤销
    (回到最近一次git commit(最新的版本)git add(和暂缓区那的信息一致)时的状态)
    git checkout -- 文件名
    git checkout 文件名 (后面试了下 deary说百分之90是不需要加--,我试了下没加成功了,加了反而不行) #撤销单个文件用这个命令
    git clean -f #撤销在工作区没有add的全部文件 #亲测 文件 可以用这个命令,但是文件夹的用这个命令不行,要手动区删除文件夹
    如:git checkout readme.txt

    11.可以把暂存区的修改撤销掉
    git reset HEAD file
    如:git reset HEAD readme.txt
    假如工作区里面有修改,暂缓区有暂缓文件,撤销暂缓区的文件,暂缓区清空,工作区还是原来的修改文件
    后记: 使用上面的命令无法把暂存区的文件撤销回工作区
    使用了
    git rm --cached * 或着 git rm --cached 文件名 可以

     



    当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步9~10

    12.删除文件
    rm 文件名 (在工作区删除该文件)
    如:rm test.txt
    git rm 文件名 (在工作区删除该文件,并且提交到暂缓区)
    如:git rm test.txt

    ----------------------------------------------远程仓操作-------------------------------------------------------------------------------------------------------------------------
    13.
    在本地的仓库下运行下面命令,关联远程仓库 (这个是先建了本地仓库,再建远程仓库的,这里一般会提示要你继续关联mastr,见后记)
    git remote add origin git@github.com:用户名/远程库名.git
    如:git remote add origin git@github.com:michaelliao/learngit.git
    14.本地仓库资料提交远程仓库
    git push -u origin master (首次提交远程仓库加-u 同步分支,第一次使用会询问验证 输入yes)
    如:
    git push -u origin master

     本地仓库版本回滚后,版本低于远程仓,使用下面命令强行更新远程仓:

     git push -f origin master 

     注释: origin 远程仓库名, master 分支名,-f 为force,意为:强行、强制。

    有时上面命令不管用 要把 origin 换成远程仓库的名字 ,如:  git push -u git@github.com:Lucky-Syw/lucky_test.git  master



    15.克隆远程仓库到本地仓库 (这个是先建远程仓库,再克隆到本地仓库。 注意这个只需要cd 到你要的文件夹下,执行下面的命令 就直接创建了关联了远程仓的 本地仓了!! )
    git clone git@github.com:用户名/远程库名.git
    如: git clone git@github.com:michaelliao/gitskills.git

    16.克隆别人的仓库,再自己的仓库里使用
    git clone git@github.com:用户名/远程库名.git 就可以把别人仓库的资料克隆下来了 (比如以前产品的需求说明放在他自己的github仓库上,我们去下载的情况)

    17.同步远程仓库信息到本地关联的仓库里
    使用了13关联了远程库,使用17同步远程库资料下来
    git pull origin master

    18.试了下面这个比较正常 (自己想的,估计是错的)
    下面这个操作才是正规的:
    18-1:先查看远程仓库有没有变化
    git fetch origin
    18-2:master分支有变化的话,先使用命令同步下来
    git merge origin/master

    再提交自己要提交的文件
    git push origin master

    假如回滚了版本再使用强行push上去

    19.上海悠悠的(下次试试这个)
    git add *
    git commit -m '更新说明'
    若果是多人同时开发代码得先git pull #问了Dreamy 其实pull是自动合并 即执行了 上面18-1 和 18-2 的命令
    git pull
    命令用于从另一个存储库或本地分支获取并集成(整合)
    最后一步是push到远程的master分支上
    git push origin master
    出现问题解决方法:




    出现下面的提示

    git config --global user.name "Your Name"

    git config --global user.email you@example.com

     

    那就按提示输入命令:

     git config --global user.name "你的名字"

    git config --global user.email 你的邮箱

     

     

    后记:

    本地仓库关联了远程仓库,本地仓库删除文件 要使用 git rm 命令去删 删完再commit提交。

    手动删除的 add 是无法把删除文件加入待提交区提交的。

     

     

    后记:

    当本地仓库首次关联了 远程仓库,提交信息到远程仓库时,会报错

    If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> master

     

    那么要使用命令 关联 远程仓的master

    git branch --set-upstream-to=origin/本地分支  远程端分支 后 git pull 拉取远程仓

    如果远程仓拉取的东西 和本地仓有冲突 会提示

    Automatic merge failed; fix conflicts and then commit the result.

    那么就打开本地仓具体的文件,进行解决冲突,然后git add 和 git commit 然后再git pull 同步回远程仓库 即可

     

    例子:

    git branch --set-upstream-to=origin/master master

     

     

     

     

     

     

    ----------------------------------分支操作-------------------------------------------------------------------------------------------------------------------------

    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

    创建+切换分支:git checkout -b <name>

    合并某分支到当前分支:git merge <name> (这个方法的话 查log的时候是将分支的提交log合并到主线,不知道哪一步是分支和主线合并的步骤)

    合并某分支到当前分支:git merge --no-ff -m "merge with no-ff" 分支名称

    如:git merge --no-ff -m "merge with no-ff" dev(这个方法合并分支的话,会主线和分合并这里打一个log,那么我们看log的时候就知道这里是做过合并的地方)

    删除分支:git branch -d <name> 分支没有合并的话要用-D

    (注意:删除分支后,要找回这个分支,记得要先创建一个分支,在这个分支在找回原来分支的记录。如果在主线找回分支记录的话,主线信息会被分支替换掉)

    (假如工作区和暂缓区有工作资料存在,切换支线 这些文件会跟着走,展示在切换的支线上,所以每次切换线之前都要确定当前线没有待办事项)

    推送本地分支到远程库: git push origin branch(分支名称)

    拉取远程分支到本地分支: git pull origin  branch(分支名称)

    使用时记录备注:

    分支不要去删除主线上的文件,要合并后再删除主线上要删的文件

    拉了分支后,不要动主线上的文件,不然主线提交了版本,分支合并不了

    16.查看分支合并图形
    git log --graph --pretty=oneline --abbrev-commit
    git log --oneline --decorate --graph
    (这句效果一样,也可以看提交记录 和tag记录)
    git log --decorate



    ----------------------------------------------------------打版本标签 tag---------------------------------------
    这里要搞明白,一个标签 只能对应一个commit ,一个commit 能对应多个tag
    打版本标签,会把最后一次commit的地方加上版本号 v1.0
    git tag -a v1.0
    #-a 是给这个标签备注的意思,首次一般要-a 给标签加备注,再次使用这个标签的时候就可以不用-a
    另外一种写法: git tag -a v0.1.2 -m “0.1.2版本”
    会把最后一次commit的地方加上版本号v0.1.2,并对这个标签添加备注“0.1.2版本”

    查看所有标签
    git tag

    删除某个标签
    git -d v1.0
    后记:有时上面那个命令执行不成功就使用
    git tag -d
    v1.0

    如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签的方法
    git tag -a v0.9 85fc7e7   (85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签) #这个试了貌似木有ok
    git tag -a 0.9 -m "备注" 85fc7e7(85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签 -m 是对标签的备注) #这个试了ok
    可以看到说明文字 git show <tagname>
    查看标签 git tag
    参考:http://www.runoob.com/git/git-tag.html
    
    
    -------------------------------------------------------------------------------------多人协作-----------------------------------------------------------------------
    是把对方的 id_rsa.pub公钥 配置到远程仓库里,再通过克隆,同步远程库等方法达到协作
     
     教程参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000    
            http://www.testclass.net/git/git-github-start/
            http://www.runoob.com/git/git-remote-repo.html
    看得是前2个
      虫师的python-selenium教程有个git多人协助的说明有空要去看

    后记:
    自己摸索了下一个流程
    先拉取github上的主线 到各自关联的本地库,
    然后在各自本地库创建自己的分支,进行工作(注意不要删除主线的文件)
    工作完后,把分支和主线合并一起,使用命令
    git fetch origin 查看远程库主线有没有变化
    有变化就先
    git pull origin master 同步到本地
    然后再
    git push origin master 把本地信息推送到远程库
     
     
  • 相关阅读:
    有道难题 双倍超立方数 的解答
    《网瘾战争》如此震撼之作,不看枉为国人
    CSS样式命名规则及参考命名标准
    AS3自定义鼠标光标后应注意鼠标事件捕获问题
    AS3 RPG游戏引擎开发日志3:地图坐标转换
    最长的一天
    解决ASP乱码问题
    you are MJJ!!!!
    浅谈MIS系统架构
    让火狐等浏览器也能使用HTC(HTML component)的方法
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/8353788.html
Copyright © 2011-2022 走看看