git使用

作者: 上官宏竹 | 来源:发表于2021-08-26 11:14 被阅读0次

    git游戏

    git命令

    新建分支

    git checkout -b mybranch  // 创建本地分支并切换到对应的本地分支(mybranch)
    git checkout -b mybranch origin/RemoteBranch  // 创建本地分支并检出远程的分支到本地
    

    复制分支

    git checkout -b new_branch old_branch
    

    删除分支

    删除本地分支

    git branch -d localBranchName
    

    切换分支

    切换本地分支

    git checkout B
    

    查看分支

    1、查看远程分支

    git branch -a
    

    2、查看本地分支

    git branch
    git branch -vv  // -vv:显示更多信息。会将所有的本地分支列出来并且包含更多的信息,如每一个分支正在跟踪哪个远程分支与本地分支是否是领先、落后或是都有。
    

    拉取、更新代码

    git pull  // 当本地分支代码未做修改,直接pull更新
    git pull origin dev(远程分支名称)  // 拉取远端分支的代码到本地
    

    本地代码有修改:
    方法1:

    git checkout abranch  // 切换到本地abranch分支
    git pull
    git checkout b_branch
    git merger abranch  // 把abranch分支合并到当前b_branch分支
    

    方法2:

    git reset --hard 
    

    查看本地修改

    git diff           // 可以查看当前没有add 的内容修改(不在缓冲区的文件变化)
    git diff --cached  // 查看已经add但没有commit 的改动(在缓冲区的文件变化)
    git diff HEAD      // 是上面两条命令的合并
    

    提交到本地

    设置提交模板
    git config --global commit.template  /home/song/work/song_complate
    
    git commit 将修改提交到本地
    git commit --amend 合并提交

    git commit --amend会合并当前提交和上一次的提交,如果当前提交有注释,则以当前的注释为合并后的提交的注释,若当前提交没有注释,则以上一次提交的注释作为合并后的提交的注释。

    git commit --amend -m "xxxxx"
    

    回退本地修改

    1、已commit
    使用git reset回退

    git log
    git reset --hard [提交号] // 这个会清理掉本地修改的文件
    git reset --hard HEAD^  // HEAD是指向当前版本的指针,HEAD^表示上个版本,HEAD^^表示上上个版本
    

    2、未commit的本地文件
    使用git checkout撤销。撤销本地已修改但未提交的文件。注意: 已 add/ commit 的文件不适用个方法,用第一个方法处理。

    git checkout .      # 撤销对所有已修改但未提交的文件的修改,但不包括新增的文件
    git checkout [filename]     # 撤销对指定文件的修改,[filename]为文件名
    

    提交代码到远端

    git push origin mybranch:RemoteBranch    // 推送本地的mybranch(冒号前面的)分支到远程origin的RemoteBranch(冒号后面的)分支(没有会自动创建)
    

    强制更新远端代码

    git push -f origin origin/dev_80:privatebuild/xxxx
    

    记录

    1、丢弃git工程下所有的修改,并更新到最新
    git fetch --all && git reset --hard origin/dev_r6c20

    git clean -df && git checkout . && git fetch --all && git reset --hard origin/privatebuild/xxxx
    git clean -df清除本地未提交修改的文件
    git checkout .清除本地仓已提交修改的问题
    git fetch --all拉取远端
    git reset --hard origin/privatebuild/xxxx更新本地代码到最新远端分支origin/privatebuild/xxxx

    2、git pull冲突解决(与代码仓库的冲突)
    error: Your local changes to the following files would be overwritten by merge:
    备份有冲突的文件xxx.file
    git checkout -f xxx.file (丢弃了该文件的修改)
    git pull再比较恢复
    7、创建分支并切换
    git checkout -b privatebuild/{username} origin/privatebuild/{username}
    12、强制更新远端分支
    git push -f origin origin/dev_80:privatebuild/xxxx
    10、打补丁及恢复
    Git 生成技巧及流程
    Git 打补丁-- patch 和 diff 的使用
    打补丁:

    1. 创建git
    cd src
    git init
    
    1. 添加需要制作补丁的文件或目录,或者全部添加git add *或者git add *.c
    2. 提交原始文件git commit -a -m 'init'
    3. 开始修改文件
    4. 提交修改文件 git add 修改的文件(添加到暂存区) git commit -m "message"
    5. 创建补丁
      创建补丁之一:创建某个修改的补丁命令:git format-patch [commit id] -n #n指从sha1 id对应的commit开始算起n个提交
      创建补丁之二:创建两个修改之间的补丁命令:git format-patch 【commit 老id】..【commit 新id】,例如:git format-patch 2a2fb4539925bfa4a141fe492d9828d030f7c8a8..89aebfcc73bdac8054be1a242598610d8ed5f3c8
    6. 恢复:
    cd src
    git apply --check ../0001-qt-vulnerability.patch 检查
    git apply ../0001-qt-vulnerability.patch 打入
    

    11、如果本地看不到远端新建的分支,需要在本地执行git fetch --all


    从新安装git

    1、安装git

    2、配置git

    2.1 配置全局用户名及邮箱
    $ git config --global user.name "yourname"
    $ git config --global user.email "yourmail@huawei.com"
    

    Tips:必须要设置用户名及邮箱后才能使用Git,Git通过检测用户名和邮箱来跟踪进行commit的用户,在每次提交代码时这些信息将会附加在提交信息当中。

    2.2 配置ssh key

    参考: Git ssh 配置及使用 [https://blog.csdn.net/gdutxiaoxu/article/details/53573399]
    (1)生产公钥
    如果没有配置过,则需要使用以下命令:

    $ ssh-keygen 
    

    该命令会在用户主目录(~)里生产.ssh文件夹,里面有id_rsa和id_rad.pub两个文件,这两个文件就是SSH Key的秘钥对。其中,id_rad是私钥,不能泄露,id_rsa.pub是公钥,可以告诉别人
    (2)添加公钥
    将公钥添加到codeclub等网站,就可以进行代码的下载和上传了。

    git官方教程

    git官方教程

    `

    相关文章

      网友评论

          本文标题:git使用

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