git命令使用记录

1.  
    $git branch              显示所有本地分支(初始化时只有一个master分支)    
    $git init                    初始化本地版本库(重新初始化一次,可以忽略)
    $ls -a                       找到目录下隐藏的 .git
    $rm -rf .git               删除 .git(就会清除当前的git仓库, 可以再次执行 git clone...)
    $ ls -a                      可以看到master分支已经删除

2.
    $git branch -a                        列出所有分支名(查看所有分支)
    $git checkout master             分支切换到 master    
    $git checkout                         检查属于哪个分支
    $git checkout voxbranch_01  切换到指定分支voxbranch_01

3. 
    $git checkout -b dev origin/dev                checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
    $git checkout -b release origin/release     作用参见上一条说明
    $git checkout dev                                     切换回dev分支,并开始开发

4.
    $git branch devlyl                           在当前分支下,新建一个名为devlyl的分支
    $git push origin devlyl                     将本地新建的分支(分支名为:devlyl)同步到远程服务器上,这样别人也能看到

    $git checkout devlyl
    $git branch --set-upstream-to=origin/devlyl 或者git push --set-upstream origin devlyl

    注:$git branch -vv 查看关联
        $git branch -u origin/devlyl 关联

5.
    $git branch -r                                                命令查看远端库的分支情况
    $git branch --set-upstream-to=origin/dev     建立本地到上游(远端)仓库的链接,这样代码才能提交上去
    $git branch --unset-upstream master          取消对master的关联关系

6.
    $git add readme.txt                                  提交新增文件之前先添加文件
    $git commit -am "add a readme file"          提交新增文件并附加描述信息
    $git add .                                                  添加全部新增
    注:在仓库的根目录下创建一个名为.gitignore的文件,然后编辑文件,把需要提交忽略掉的文件或文件夹包括进去

    注:有文件内容更改,之后提交
    $git commit -a -m "made a change"          当前分支提交并添加提交信息描述

    $git restore [--worktree或--staged或-s HEAD~1或-s v_001] [文件名(llv.c)或者其他参数(*.c)]   撤销修改
           --worktree:         撤销文件工作区的修改
              --staged:         撤销暂存区的修改,如撤销到add之前
         -s HEAD~1:         当前工作区切换到上个 commit 版本
             -s v_001:         当前工作区切换到commit id为v_001的 commit 版本

7.
    $git status         查看修改内容
    $git diff              查看具体的更改差异,如果比较多按回车键往后看,按下Q键退回到命令行状态
    $git log              查看历史记录
    $git reset           用于将当前HEAD复位到指定状态
                              一般用于撤消之前的一些操作(如: git add,git commit,etc.)

    $git reflog <subcommand> <options>  引用日志或“reflogs”记录分支的提示和其他引用在本地存储库中更新的时间
                                                                  可以很好地帮助你恢复你误操作的数据

    $git rebase                         在另一个分支基础之上重新应用,用于把一个分支的修改合并到当前分支

8.
    $git pull                              取回远程主机某个分支的更新,再与本地的指定分支合并
                                              在默认模式下,git pull是git fetch后跟git merge FETCH_HEAD的缩写

    $git remote show origin     查看远程仓库信息(包括git clone url)

9.
    $git push                            用于将本地分支的更新,推送到远程主机

    注意: $git push origin与$git push -u origin master的区别
    $git push origin                将当前分支推送到origin主机的对应分支
                                            注:如果当前分支只有一个追踪分支,那么主机名都可以省略

    $git push                         如果当前分支与多个主机存在追踪关系,
                                           那么这个时候-u选项会指定一个默认主机,
                                          这样后面就可以不加任何参数使用git push

    $git push -u origin master      上面命令将本地的master分支推送到origin主机,
                                                   同时指定origin为默认主机,
                                                   后面就可以不加任何参数使用git push了
    $git push origin master
    $git push origin HEAD:refs/for/远端分支名
    $git push origin 本地分支名:refs/for/远端分支名
    例子:
    $git push origin test:refs/for/master #本地test分支代码提交到远端master
8. 
    HEAD是指当前的快照(版本)
    HEAD~1(或者HEAD~)回退一个快照(版本)
    HEAD~2回退两个快照(版本)
    HEAD^ 表示当前快照(版本)
    HEAD^^ 表示上一个快照(版本), 以此类推
    HEAD~10 表示往前退10个版本

    

9. $git fetch
    $git reset --hard origin/dev 强制用远程仓库的dev分支覆盖当前分支

10. 用远程内容完全覆盖本地

    $git fetch --all
    $git reset --hard origin/master

11. 撤销 $git add .的操作 $git reset HEAD .

12.直接clone和push的配置

    $git config --global user.name "lt001"
    $git config --global user.password "123456"
    $git config --global user.email "lt001@ftgg.com"
    查看是否有.ssh目录
    cd ~/.ssh/
    如果有目录,会直接进入该目录,然后执行下面的命令一路回车,生成SSH key:
    ssh-keygen -t rsa -C "lt001@ftgg.com"
    如果是windows,则C:\Users\vily\.ssh\目录,copy文件id_rsa.pub中的文本,将其粘贴到gitlab(或者github)的 User Settings\SSH Keys\Add an SSH key中。
    至此OK了。

13.重命名分支:
    对本地分支进行重命名:
    $git branch -m oldName newName
    删除远程对应的旧分支:
    $git push origin --delete oldName
    将本地的新分支同步到远程:
    $git push -u origin newName

14.强制覆盖分支:
    切换到要覆盖的分支,这里我们用develop分支
    $git checkout develop
    执行覆盖的命令,这里是将master分支的内容覆盖到develop分支
    $git reset --hard origin/master
    覆盖成功之后,将本地分支强行推到远程分支
    $git push -f

    强制覆盖master分支
    $git checkout develop
    $git pull --rebase
    $git push origin develop:master -f

15.放弃本地修改,强制远程分支覆盖本地分支
    $git fetch --all
    $git reset --hard origin/master

16. 子模块的递归clone

      $git clone -–recursive https://github.com/NVIDIAGameWorks/KickstartRT_Demo
      或者
      $git clone --recurse-submodules git@github.com:vilyLei/Vulkan-Samples.git

      $git submodule update --init --recursive

     $git submodule update --init --recursive --force --remote

      如果还是下载不下来,那就需要设置用你自己的http与https的代理,例如:

      git config --global http.proxy http://127.0.0.1:10080

      git config --global https.proxy http://127.0.0.1:10080

17. git 获取远程地址

      $git remote -v

18. 撤销 git add .操作:

        $git reset --mixed

        这个操作退出文件暂存区并保留修改提交

19. git添加版本号: git tag -a 0.3.1 -m "0.3.1"

20. gitLabKey 生成和应用
        
        step 1:     使用命令 ssh-keygen -t rsa -b 2048 -C "lvl@svtc.com"
        
        step 2:     出现这一句的时候 Enter file in which to save the key (/c/Users/lvl/.ssh/id_rsa):直接回车
                    然后输入gitLab密码        Enter passphrase (empty for no passphrase):
                    输入之后回车
                    再次出入相同的gitLab密码   Enter same passphrase again:
                    之后就回车,完成这一步。
        
        step 3:     执行 ssh-agent bash 命令 回车稍等一下就ok了。
        
        step 4:     接着执行 ssh-add ~/.ssh/id_rsa 命令。提示输入gitLab密码。输入结束,回车完成这一步。会生成对应的sshKey数据放到相应的目录下。这个命令执行之后会将目录显示出来。
        
        step 5:     找到对应目录下的 /ssh/id_rsa.pub文件,将里面的字符串 copy 到 gitLab setting 里面的 SSH Keys 对应的文本框内,点击Add就ok了。
        
        step 6:     注意,第一次 git clone的时候,需要输入 gitLab密码。

21. git 回滚到指定 hash key(SHA1 ID)的命令: git reset --hard 626b0f7df306aa120ae99c394

     或者 git reset --hard origin/uired

23. git remote prune origin 删除远程仓库中已经不存在的但是本地仓库还存在的旧分支。

        以便解决如下这类 git fetch --all 命令执行中的错误:

        error: some local refs could not be updated; try running
        'git remote prune origin' to remove any old, conflicting branches
        error: Could not fetch origin

        调用git remote prune origin之后,再接着执行 git fetch --all 就ok了。

24. 换行符自动转换的问题:

        git config core.autocrlf false

        git config --global core.autocrlf true

        拉去代码不需要转换:

        git config --global core.autocrlf input

一些错误:

        1. fatal: unable to access 'spdray.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to 127.0.0.1:10080

        使用代理的时候,如果只设置git config --global http.proxy https://127.0.0.1:10080

而没有设置 git config --global http.proxy http://127.0.0.1:10080

就会在git clone https...时候报上述错误。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值