美文网首页需要使用Android开发Android开发
Git常用命令--了解这些就够了

Git常用命令--了解这些就够了

作者: 落魄的安卓开发 | 来源:发表于2018-05-16 22:48 被阅读446次

    Csdn

    将本地工程push到远程

    方式一:
    1. 建立本地仓库

       git init
      
    2. 创建远程仓库:在github或者gitlab创建远程仓库

    3. 让本地仓库和远程仓库进行关联

       git remote add origin git@mycode.skylettestudio.com:xlPay/XLPay.git
      
    4. 进行添加和提交操作

       git add .
       git commit -m"添加文件"
      
    5. push到远程

        git push -u origin master
    
    由于远程库是空的,第一次推送master分支时,加上-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,如下:
    
        git push origin master
    
    方式二:
    1. 创建远程仓库

    2. 把远程仓库clone到本地

       git clone git@mycode.skylettestudio.com:xlPay/XLPay.git
      
    3. 将本地工程copy到clone的文件夹中

    4. 进行添加和提交操作

       git add -A
       git commit -m"添加文件"
      
    5. 将工程push到远程

       git push origin master
      

    Add操作

    • 添加单个改动文件,如:readme.txt

      git add readme.txt

    • 添加所有改变的文件,有如下几种区别:

      //表示添加所有内容

      git add -A

      //表示添加新文件和编辑过的文件不包括删除的文件

      git add .

      //表示添加编辑或者删除的文件,不包括新添加的文件

      git add -u

    • 添加同时提交内容

      git commit -am"添加并提交到仓库"


    分支操作

    • 查看分支

        git branch
      
    • 创建分支

        git branch <name>
      
    • 切换分支

        git checkout <name>
      
    • 创建+切换分支

        git checkout -b <name>
      
    • 合并某分支到当前分支

        git merge <name>
      
    • 删除本地分支

        git branch -d <name>
      
    • 查看远程分支列表

        git branch -a
      
        绿色代表当前项目所在的分支,红色就是远程分支列表
      
    • 提交该分支到远程仓库(即:在远程创建dev分支,并提交内容):

        git push origin dev
      
    • 从远程获取dev分支内容:

        git pull origin dev
      

      或者通过用命令行,运行 git fetch,可以将远程分支信息获取到本地,
      再运行 git checkout -b local-branchname origin/remote_branchname
      就可以将远程分支映射到本地命名为local-branchname 的一分支

    • 删除远程分支

        git push origin --delete <branchName>
      
    • 重命名本地分支

        git branch -m <oldbranch> <newbranch>
      
    • 重命名远程分支

        先删除远程分支,然后重命名本地分支,再重新提交一个远程分支
      

    版本回退

    在Git中,用HEAD表示当前版本。上一个版本就是HEAD,上上一个版本就是HEAD。,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。

    • 查看提交日志(所有的提交日志,最近到最远)

        git log
      
    • 查看提交的内容(比如更改了哪些类,删除了哪些文件等)

        git log -p -1// -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新
      
    • 查看命令历史(即:我们每一个命令)

        git reflog
      
    • 通过git log 或者 git reflog可以拿到每个版本的commit_id,然后通过切换版本/回退版本的命令即可:

        git reset --hard commit_id
      
    • 回退版本操作:

        //git log 拿到commit_id
        git log
        //回到commit_id那个版本
        git reset --hard commit_id
      
    • 已经回退到了之前的版本,又想回到新版本

        //查看所有的命令,然后找到新版本提交的 commit_id
        git reflog
        //去到新版本 
        git reset --hard commit_id
      
    • 让这个文件回到最近一次git commit或git add时的状态

        git checkout -- readme.txt
      

    标签管理

    • 打一个新标签

        //默认标签是打在最新提交的commit上的
        git tag <name>
      
    • 查看所有标签(标签不是按时间顺序列出,而是按字母排序的)

        git tag
      
    • 查看某个标签信息

        //标签不是按时间顺序列出,而是按字母排序的
        git show <tagname>
      
    • 创建带有说明的标签,用-a指定标签名,-m指定说明文字

        git tag -a v0.1 -m "设置了标签啊" 3628164
      
    • 删除本地标签

        git tag -d v0.1
      
    • 推送一个本地标签到远程

        git push origin <tagname>
      
    • 推送全部未推送过的本地标签到远程

        git push origin --tags
      
    • 删除一个远程标签

        //先在本地进行删除
        git push origin :refs/tags/<tagname>
      
    • tag默认是打在最新的commit上的,如果想给已经commit过的内容添加标签如下:

        1. git reflog //找到历史版本的 commit id = 6224937
        2. git tag v1.0.0 6224937
      
    • 获取远程tag

        git fetch origin tag <tagname>
      

    解决冲突

    • 合并冲突:

        //提交的文件如果出现冲突就会出现这种提示
        CONFLICT (content): Merge conflict in readme.txt
      
        Automatic merge failed; fix conflicts and then commit the result.
      
      1. 通过git status 查看冲突文件
      2. Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容
      3. 修改文件,保存,再次提交即可
      4. 通过git log查看分支合并的情况

    更新本地工程

    • 获取远端库最新信息

        git fetch origin
      
    • 作比较

        git diff master origin/master
      
    • 合并本地仓库代码

        git merge origin/master
      

    公共操作

    • 把本地git仓库恢复为普通文件夹

      1. 删除这个目录里的隐藏文件夹.git
      2. rm -rf .git/
    • 测试Github和Gitlab是否添加了SSH

        ssh -T git@github.com
        ssh -T git@gitlab.com
      
    • 查看未传送到远程代码库的提交描述/说明(commit到了本地仓库,但是没有push到远程仓库的内容的提交说明)

        git cherry -v origin thcdev//后面要加push到的远程仓库名
      
    • 查看远程库信息

        git remote -v;
      
    • 清屏操作

        git reset
      
    • git log之后退出

        按 Q 即可
      
    • 找到历史提交的commit id

        git log --pretty=oneline --abbrev-commit
      
    • 和远程仓库建立联系

      1. 创建SSH Key

        • 在用户主目录(这里在windows下是指 c/user/Administrator/.ssh/id_rsa)下,看看有没有.ssh目录。

        • 如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。

        • 如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

            $ ssh-keygen -t rsa -C "youremail@example.com"
          
        • 需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。

        • 由于这个Key也不是用于军事目的,所以也无需设置密码。

        • (测试的结果:C:\Users\Administrator.ssh 里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa
          是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。)

      2. 登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。点“Add Key”,你就应该看到已经添加的Key:

        注意两点:

        • 为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

        • GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

      3. 测试SSH key是否添加成功

        输入如下命令进行测试

         ssh -T git@github.com
        

        如果出现:

        ssh_success.png

        说明添加成功了。


    Git 命令行常用命令

    • 进入当前路径的dev

        cd dev
      
    • 返回上级目录

        cd ..
      
    • 返回上次目录

        cd
      
    • 查看当前目录

        pwd
      
    • 列出当前目录内容

        ls    
      
    • 新建一个名为dev的目录

        mkdir dev
      
    • 强制删除,不管目录为不为空

        rm -rf dev    
      

    Vim常用命令

    • 关闭(Exiting)

        :w 保存
        :wq 保存并关闭 :x
        :q 关闭(已保存)
        :q! 强制关闭
      
    • 关闭插入模式

        ESC//点击之后就可以执行 vim命令操作
      

    大佬命令集合


    git问题收录

    • Unable to create 'E:/WorkSpace/xiaoluSDK-android/.git/index.lock': File exists.

      rm -f ./.git/index.lock

    [搞一波](https://blog.zengrong.net/post/1746.html#)
    
    • 当操作git的时候,如果进入了很多命令.~ ... 等,需要按q退出

    相关文章

      网友评论

      本文标题:Git常用命令--了解这些就够了

      本文链接:https://www.haomeiwen.com/subject/nfbpdftx.html