git使用技巧总结

一、把github上的代码下载下来

  • 简单下载git代码
git clone ......
  • 下载代码,并更新子模块
git clone ....
# 更新.git/config文件
git submodule init
git submodule update
# 或者
git clone git@github.com:SprintRay-Software/Moonray.git --recursive

二、把修改的代码提交上去

git add ....
git commit -m "........"
git push -u origin master

三、强制切换成某个版本

git reset --hard .....commit code .......

四、创建分支

git checkout -b .... branch name ....
git add .......
git commit -m ........
git push -u origin ......branch name ......

五、切换成最新版本

git pull

六、放弃本地修改,远程分支强制覆盖本地

git fetch --all    //只是下载代码到本地,不进行合并操作
git reset --hard origin/分支名如master    //把HEAD指向最新下载的版本

七、git网页上删除分支后本地不同步

踩到一个小坑,如果在gitlab或其他web端删除git某分支,本地pull的话并不会更新分支列表,也就是会出现远端分支A已经被删掉了,但是在本地git bash里面仍然能看到远端分支A这种灵异的情况。本地使用branch -a 命令可以看到分支FixIECompatible,并且还可以检出。但是想删除远端分支的时候就报错了,说分支不存在(事实上远端就是不存在)。
可用如下命令刷新分支列表,可解决此问题

# 可用如下命令刷新分支列表,可解决此问题
    git remote update origin --prune
# 另外还可使用如下方法查看需要清理的本地分支
    git remote prune origin --dry-run
# 或
    git remote prune origin -n

八、代码修改完后如何提交

1.先需要把需要合并的分支,更新到最新
2.把自己写好的分支合并进需要合并的分支
3.git会自动合并代码,如果有冲突需要手动修改冲突。
4.修改完冲突,在自己的分支add和commit一下,并push
5.在git网页中提交pull requset

git checkout development
git pull
git checkout DRS-478_updateTime
git merge development
git submodule update
git status
git add MoonrayUI.pro
git commit -m "resolve confilict"
git push

九、从分支中创建分支

# 创建并切换到分支
git checkout –b 分支名称 
# 从某个commit开始创建分支
git checkout -b 分支名称 commitID

十、项目中修改了子模块

项目需要add子模块目录,把新的commit id上传上去。
QTCreator中打开子模块的文件后,选择git commit就可以上传子模块。
上传好子模块就又新的commit id,然后再主项目中add时增加那个目录的commit id就好了。

十一、git显示一行commitid

git log --pretty=one

十二、一台电脑用两个git

https://blog.csdn.net/ziwuzhulin/article/details/90400789

十三、修改git远程地址

git remote set-url origin git@github.com:aimi-cn/AILearners.git

十四、git查看add后的内容

#是查看暂存的变化
git diff --staged

十五、git是用git lfs上传大文件

git上传最大只有2gb可以上传,否则会生成remote: fatal: pack exceeds maximum allowed size的错误

git lfs install
git lfs track "path/to/large/file"
git add .gitattributes
git add "path/to/large/file"
git commit -m "Add large file: xxxx"
git push origin main

查找文件

find ./ -type f -size +100M -not -name '*.o' -exec git lfs track {} \; -exec git add {} \;
find ./ -type f -size +100M  -name '*.jar' -exec git lfs track {} \; -exec git add -f {} \;
find ./ -type f -size +100M  -name '*.a' -exec git lfs track {} \; -exec git add -f {} \;

find ./ -type f -size -100M -size +50M|grep -v '\/.git'

撤销一次最近的本地提交

git reset HEAD~1

把git本地的commit -m步骤撤销

git reset --soft HEAD^

之查看改动部分的内容,查看uncrack文件

git status -uno

find ./ -type f -size +100M -not -name '*.o'|grep -v '.git'|cut -c 3-
find ./ -type f -size -100M -size +50M|grep -v '\/.git'|cut -c 3-

git的commit一个一个提交脚本

#!/bin/bash

set -e
set -x
cd xxxx-directory

while true;do
        CurrentBranchName=`git rev-parse --abbrev-ref HEAD`
        RecentLogCommit=`git log --oneline origin/${CurrentBranchName}..HEAD|tail -n 1|awk '{print $1}'`
        RecentLogNote=`git log --oneline origin/${CurrentBranchName}..HEAD|tail -n 1| cut -d ' ' -f 2-`

        if [ -z "$RecentLogCommit" ];then
                echo "All local commits have been pushed. Exiting loop."
                break
        fi

        echo "Recent log commit: $RecentLogCommit"
        echo "Recent log note: $RecentLogNote"
        echo "Current branch name: $CurrentBranchName"
        git push origin $RecentLogCommit:$CurrentBranchName || true

        sleep 1
        echo "sleep done"
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在VSCode中使用Git,你可以通过快捷键"Ctrl + Shift + P"打开VSCode的命令框,然后输入"git"关键字来查看所有VSCode支持的Git命令。如果你想克隆一个Git代码库,你可以使用"Ctrl + Shift + P"打开命令框,然后输入"git clone"并回车,然后在文本框中输入Git代码库的地址。 此外,还有一些关于Git使用技巧。如果你使用https://开头的地址克隆代码库,在执行git pull或git push操作时会提示你输入账号和密码,这可能会很麻烦。你可以通过配置Git的凭据存储来解决这个问题,具体步骤如下:首先,打开终端或命令行窗口,然后输入以下命令,将Git的凭据存储方式更改为缓存模式: ```shell git config --global credential.helper cache ``` 这样,当你第一次输入账号和密码后,Git会将凭据缓存在内存中一段时间,以便后续的操作不需要再次输入。你可以通过修改`--global`参数为`--timeout=3600`来设置缓存的时间,单位是秒。 另外,如果你使用的是Git的ssh形式克隆代码库,你可以设置SSH密钥来避免频繁输入密码。你可以使用命令`ssh-keygen`生成SSH密钥对,并将公钥添加到Git代码库的设置中。这样,在使用Git操作时,就不需要再输入密码了。 总结来说,VSCode集成了许多Git命令,并通过快捷键和命令框的方式提供了方便的操作方式。另外,通过配置Git的凭据存储和设置SSH密钥,可以避免频繁输入密码,提高使用效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

习惯就好zz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值