• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Roséa
😘正是你花费在玫瑰上的时间才使得你的玫瑰花珍贵无比...
博客园    首页    新随笔    联系   管理    订阅  订阅
Git操作【常用操作命令】
git常用操作命令,自用

Git操作指令

1. git init 初始化一个git 仓库;

2. git add test.txt 添加一个文件到仓库,可以添加多个,一空格隔开;

3. git commit -m “remarks” 把文件提交到仓库;

4. git status 当前仓库的状态,哪些修改了,哪些还未提交等;

 

5. git remote  查看远程库的信息

6. git remote -v 查看上传协议 SSH/HTTPS

7. git remote

    git remote set-url origin git@github.com:Chuyue0/JavaScript-codewars.git
    git remote set-url origin https://github.com/Chuyue0/JavaScript-codewars.git
      (切换SSH/HTTPS协议)
   补充:查看本地仓库地址
   git remote show origin

 

8. 同步与改动

    git fetch origin
    git reset --hard origin/master
      丢弃在本地的所有改动与提交,重新从服务器获取最新的版本历史,并将本地主分支指向它;
    git checkout --<filename>    若操作失误,替换掉本地改动,添加到暂缓区的文件不受影响;

 

9. git reset --hard HEAD^  把当前版本回退到上一个版本;

10. 删除

    rm <file>    删除本地的文件,若删错了,可以用checkout指令;
    git rm <file>    删除版本库的文件,删掉后commit提交;

 

11. git push -u origin master

  把本地库的当前内容推送到远程库,参数-u是把本地主分支和远程主分支关联起来;

12. 关联与取消

    git remote add origin git@github.com:Chuyue0/JavaScript-codewars.git     关联一个远程库;
    git remote rm origin
      移除远程库的关联; 

 

13. 分支

   git branch testBranch   创建分支testBranch
  git checkout testBranch 切换分支   Switched to branch
'testBranch' 提示信息    相当于 git checkout -b testBranch 创建并切换到分支;   git branch 查看所有的分支信息 ,当前分支前带有*   git branch –all 查看所有的分支信息   git checkout master 切回主分支   git merge testBranch 合并testBranch分支到主分支master上   git branch -d testBranch 删除testBranch本地分支   git push origin :testBranch 删除远程库上的分支   git push branch testBranch push本地分支testBranch到远程库

 

14. 推送分支

    git push origin master   把该分支上的本地提交推送到远程库
    git push origin branchName  推送其他分支

 

15. 更新当前分支(更正:更新远程变动分支包含当前)
         git pull

16. 本地提交  git commit -am
  当你本地的文件都已经用git add “” 或之前已经添加到缓存区后,这时本地文件有所改动(修改过的或新加入的),需要进行commit 提交,使用git commit -am “remark”即可全部提交到staged,最后 git push到远程库;
  ***注意:在分支切换之前最好先commit全部的改变,除非你真的知道自己在做什么!

 

17. 添加所有的 git add -A
         不再需要一个个的单独添加

18. 追踪未添加的文件git add . 
         git add . 

  //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了 

19.  git reset HEAD a.txt 

         撤销暂存的文件 (已经添加到暂存区了)

20. 配置使用用户

    git config --global user.name ‘xxx’
    git config --global user.email xxx@xx.com

  git config --global 参数 ,这个参数就是你机器上的git仓库都会使用这个配置,否则你就只能对某个仓库指定不同的用户名和邮箱;

  查看用户名和邮箱地址:git config user.name git config user.email

 

21.常用操作命令

    1.初始化 git init

    2.关联码云远程仓库地址 git remote add origin https://gitee.com/Rosea/xxx.git

    3.拉取关联地址 git pull origin master

    4.推送到远程仓库 git push origin master

    5.回退到指定版本 git reset –hard 提交记录id
    6.获取最新的 Git 提交哈希 git rev-parse --short HEAD

 

22.本地项目代码关联远程仓库并提交,命令如下:

    1. git init
    2. git remote add origin @gitee.com:Rosea/xxx.git
    3. git pull origin master
    4. git add . 
    5. git commit -am 'message'
    6. git push origin master

# 或者用以下的命令完成关联仓库
git init
git checkout -b release
git add .
git commit -m 'feat: commit message'
git remote add origin
@gitee.com:Rosea/xxx.git
git push -u origin release
# DONE

 

23. 在 Git 仓库中查看某个人当前月的代码提交量

示例:

git log --author="tuyan"    --since="2025-06-01"  --until="2025-06-20"   --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "添加行数: %s\n删 行数: %s\n", add, subs }'
git log --author="hujin"   --since="$(date +'%Y-%m-01')"   --until="$(date -d 'next month' +'%Y-%m-01')"   --oneline | wc -l
# 方式一:获取当前月的第一天和最后一天(自动计算)
git log --author="author" \
  --since="$(date +'%Y-%m-01')" \
  --until="$(date -d 'next month' +'%Y-%m-01')" \
  --oneline | wc -l
#方式二:统计代码变更行数(增/删)
git log --author="作者名" \
  --since="$(date +'%Y-%m-01')" \
  --until="$(date -d 'next month' +'%Y-%m-01')" \
  --pretty=tformat: --numstat | 
awk '{ add += $1; subs += $2 } END { printf "添加行数: %s\n删除行数: %s\n", add, subs }

 

24. 在仓库中想要回退到某个特定的commit,并推送到远程git同步更新,操作如下:

# 1.查看提交日志记录
git log

# 2.回退命令
git reset --hard 提交的hash
eg: git reset --hard 3ebf92d67d23dff0a67752b0f3c5ab19d32859f8

# 3.推送到远程
git push --force origin release
 适用场景:确认远程的提交可以丢弃,强制推送当前提交
git push
--force-with-lease origin release
适用场景:更安全,检查是否有他人新提交

# 如果需要合并远程变更(保留提交历史),命令如下:
 git pull origin release        # 拉取远程提交(会产生合并提交)
 git push origin release        # 重新推送
 适用场景:需要保留远程的提交历史(例如:协作分支)

# 如果需要保持历史线性,使用变基操作,命令如下:
 git pull --rebase origin release  # 将本地提交变基到远程提交之上
 git push origin release

如果遇到了报错,请在回退前是否同步远程提交,先同步,再操作。

 

25. 进行git 中止合并操作

image

image

# 1.检查当前分支状态
git status

# 2.中止合并操作
git merge --abort

26.本地项目拉取远程仓库分支报错,导致异常中止的问题。

  报错关键信息:error: cannot lock ref 'refs/remotes/origin/dev/2.6.30代发商品': 'refs/remotes/origin/dev' exists; cannot create 'refs/remotes/origin/dev/2.6.30代发商品' From http://111 ! [new branch] dev/2.6.30代发商品 -> origin/dev/2.6.30代发商品 (unable to update local ref) error: Could not fetch origin

  错误原因:Git 无法创建名为 dev/2.6.30代发商品 的远程分支引用,因为已经存在一个名为 dev 的引用(本地存在dev分支)。在 Git 中,如果一个文件夹和文件具有相同的前缀路径,文件系统就无法同时创建它们。

  分析情况如下:

  • refs/remotes/origin/dev 已经存在(可能是一个分支)
  • Git 尝试创建 refs/remotes/origin/dev/2.6.30代发商品(这需要 dev 成为一个目录)
  • 但是 dev 已经是一个文件(不是目录),所以无法创建其子目录

  解决方式:

  方法一:清理远程引用并重新获取

  1. 首先,清理本地的远程分支引用: git fetch --prune  或更手动  git remote prune origin 
  2. 然后重新获取远程分支 git fetch origin 

   方法二:删除特定的引用

  1. 查看当前的远程引用: git ls-remote origin 
  2. 删除本地的远程分支缓存: git update-ref -d refs/remotes/origin/dev 
  3. 然后重新获取

  方法三:完全重置远程跟踪信息

  1. 删除所有远程分支的本地缓存: rm -rf .git/refs/remotes/origin/
  2. 重新获取

  建议:项目中尽量使用英文命名分支,避免潜在的编码问题。

 

posted on 2020-11-19 14:01  Roséa  阅读(2767)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3