git使用

2021-08-26  本文已影响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官方教程

`

上一篇下一篇

猜你喜欢

热点阅读