常用命令

查看配置选项

 git config --list
  1. diff.astextplain.textconv=astextplain:
    • 这是 Git 差异工具的配置,用于处理特定类型的文件差异。
  2. filter.lfs:
    • 这些配置与 Git LFS(Large File Storage)相关,用于处理大文件。
  3. http.sslbackend=openssl:
    • 指定 Git 使用 OpenSSL 作为 SSL 后端。
  4. http.sslcainfo:
    • 指定 SSL 证书的路径,Git 会用这个证书来验证 HTTPS 连接。
  5. core.autocrlf=true:
    • 然后被设置为 false,这意味着 Git 将不会在 Windows 系统上自动转换 LF(换行符)到 CRLF。
  6. core.fscache=true:
    • 启用文件系统缓存。
  7. core.symlinks=false:
    • 不允许 Git 跟随符号链接。
  8. pull.rebase=false:
    • 禁用了默认的变基操作,当你执行 git pull 时,Git 将执行合并而不是变基。
  9. credential.helper=manager:
    • 指定了凭证管理器。
  10. credential.https://dev.azure.com.usehttppath=true:
    • 这是一个特定的配置,用于 Azure DevOps 服务的凭证管理。
  11. init.defaultbranch=master:
    • 设置了默认分支名称为 master
  12. user.email=usr.email@xx.com:
    • 你的 Git 配置的电子邮件地址。
  13. core.repositoryformatversion=0:
    • 仓库格式版本。
  14. core.filemode=false:
    • 不跟踪文件的执行权限。
  15. core.bare=false:
    • 当前仓库不是一个裸仓库。
  16. core.logallrefupdates=true:
    • 记录所有的引用更新。
  17. core.ignorecase=true:
    • 在文件名比较时忽略大小写。
  18. remote.origin.url:
    • 远程仓库 origin 的 URL。
  19. remote.origin.fetch:
    • 定义了从远程 origin 获取所有分支的策略。
  20. branch.master.remote=origin:
    • 指定 master 分支的远程跟踪分支。
  21. branch.master.merge=refs/heads/master:
    • 指定 master 分支合并到的远程分支。
      这些配置为你的 Git 操作提供了环境和行为设定。需要修改任何配置,可以使用 git config 命令,比如:
git config --global core.autocrlf input

这会将 core.autocrlf 设置为 input,这意味着 Git 会将 LF 转换为 CRLF 仅在你提交时,并且在检出时将 CRLF 转换回 LF。

echo "# P2Pnet" >> README.md

  • 这个命令会在当前目录下创建(如果不存在的话)或追加(如果已存在的话)一个名为README.md的文件,并写入内容# P2Pnet

git init

  • 初始化一个新的Git仓库。这会在当前目录下创建一个.git目录,用于存储所有的Git仓库数据。

git add README.md

  • README.md文件添加到Git的暂存区(staging area),准备下一次提交。

git commit -m "first commit"

  • 提交暂存区的文件到仓库,并附上提交信息“first commit”。

git branch -M main

  • 将当前分支重命名为main。这是GitHub默认的主分支名称,也是许多项目的首选分支名。

git remote add origin https://github.com/galaxy-vagrant/P2Pnet.git

  • 添加一个名为origin的远程仓库,其URL是https://github.com/galaxy-vagrant/P2Pnet.git

git push -u origin main

  • 将本地的main分支推送到远程仓库的main分支,并设置originmain分支的上游(tracking)仓库。
# 添加所有未跟踪的文件到暂存区,但会跳过 .gitignore 文件中指定的文件
git add .
# 或者只添加特定的文件或文件夹
git add path/to/your/file
git add path/to/your/folder/
# 提交你添加到暂存区的文件:
git commit -m "Add project files"
# 使用 git push 命令将更改推送到 GitHub 仓库
git push origin master

处理已跟踪的忽略文件:
如果之前已经将一些现在想要忽略的文件添加到了 Git 仓库,需要先从 Git 仓库中移除这些文件

# 使用 --cached 选项可以确保文件从 Git 仓库中移除,但保留在你的本地文件系统中
git rm --cached path/to/ignored/file
git commit -m "Remove ignored files from Git tracking"
git push origin master

本地Git仓库与远程GitHub仓库关联,推送代码

  1. git remote add origin https://github.com/galaxy-vagrant/P2Pnet.git

    • 这个命令将远程仓库的URL添加到本地仓库的配置中,并给它一个名字origin。这个名字是常用的命名约定,代表远程仓库的默认分支。
  2. git branch -M main

    • 这个命令将当前分支强制重命名为main-M参数表示强制重命名,即使当前分支有未提交的更改也会执行。
  3. git push -u origin main

    • 这个命令将本地的main分支推送到远程仓库的main分支。-u参数设置了上游(upstream)跟踪,这意味着以后当你使用git pushgit pull命令时,Git会自动知道要与哪个远程分支交互。
git clone https://github.com/usr-name/xxnet.git
cd P2Pnet
git remote add origin https://github.com/usr-name/xxnet.git
git branch -M main
git push -u origin main

这些命令会克隆远程仓库到你的本地机器,然后设置远程仓库的URL,重命名当前分支为main,并将更改推送到远程仓库。

.gitignore

如果已经创建了 .gitignore 文件并且添加了要忽略的文件规则,那么 Git 将自动应用这些规则。以下是确保 .gitignore 文件正确使用并上传到远程仓库的步骤:

  1. 确保 .gitignore 文件正确添加规则
    打开 .gitignore 文件,检查是否已经包含了要忽略的文件规则,例如:

    pre_gd_cnt.txt
    
  2. .gitignore 文件添加到 Git 仓库:
    如果你还没有将 .gitignore 文件添加到 Git 仓库,使用以下命令:

   git add .gitignore
warning: in the working copy of '.gitignore', LF will be replaced by CRLF the next time Git touches it

这个警告信息是 Git 提醒你,当你的 .gitignore 文件被修改并再次被 Git 处理时,文件中的换行符(LF)将会被转换为 Windows 风格的换行符(CRLF)。这是由于 Git 在 Windows 系统上默认使用 CRLF 作为换行符,而在 Unix-like 系统(如 Linux 和 macOS)上使用 LF。

这个警告通常不会影响 .gitignore 文件的功能,因为 Git 会正确地处理文件中的规则,无论它们使用的是 LF 还是 CRLF。然而,如果你在多个操作系统上工作,或者与使用不同操作系统的团队成员合作,这可能会导致一些混淆。
设置 Git 在 Windows 上使用 LF 换行符,这样就不会在 .gitignore 文件中看到 CRLF 了。使用以下命令:

git config --global core.autocrlf false
  1. 提交 .gitignore 文件
    提交 .gitignore 文件到你的本地 Git 仓库:
git commit -m "Add .gitignore to ignore specific files"
git commit -m "Add .gitignore to ignore specific files"
[master (root-commit) d52d8f4] Add .gitignore to ignore specific files
 1 file changed, 21 insertions(+)
 create mode 100644 .gitignore

根据你提供的 Git 命令输出信息,你已经成功地将 .gitignore 文件添加到了你的 Git 仓库中,并且已经进行了第一次提交。以下是步骤的总结:
创建 .gitignore 文件
你创建了 .gitignore 文件,并且可能已经添加了一些规则来指定 Git 应该忽略的文件。
添加并提交 .gitignore 文件
你使用 git add 命令将 .gitignore 文件添加到了暂存区,然后使用 git commit 命令将其提交到了你的本地 Git 仓库。
查看提交信息
提交后,你看到了一条信息,表明 .gitignore 文件已经被添加到了你的仓库中,并且有 21 行内容被添加。同时,create mode 100644 表示这是一个新文件,并且它的权限模式被设置为 100644。
现在,.gitignore 文件已经在你的 Git 仓库中,并且它的规则将开始生效。这意味着 Git 将不再跟踪 .gitignore 文件中指定的文件和文件夹。
4. 推送 .gitignore 文件到远程仓库
.gitignore 文件推送到远程仓库:

   git push origin main
$ git push origin main
error: src refspec main does not match any
error: failed to push some refs to 'origin'
  • 确保你的分支名是正确的,如果不是 main,请替换为实际的分支名。
    这个错误信息表明你在尝试将本地的 main 分支推送到远程仓库时遇到了问题。错误 error: src refspec main does not match any 指出 Git 没有找到名为 main 的本地分支来推送。
    这可能有几个原因:
    本地没有 main 分支:你可能在错误的分支上,或者你的默认分支名是 master 而不是 main。
    远程仓库没有 main 分支:如果远程仓库是新创建的,可能还没有 main 分支。
    拼写或大小写错误:分支名在 Git 中是区分大小写的,确保你使用的分支名是正确的。
git branch
* master   

默认分支名是 master,使用

git push -u origin master
git push -u origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

这个错误信息表明 Git 无法识别名为 origin 的远程仓库。这可能是因为以下几个原因:
远程仓库 URL 错误或不存在:你可能没有正确设置远程仓库的 URL,或者远程仓库已经被删除。
没有添加远程仓库:你可能还没有将你的本地仓库与远程仓库关联。
访问权限问题:你可能没有足够的权限访问远程仓库。
检查远程仓库是否已经正确添加并且 URL 是正确的

列出所有配置的远程仓库及其 URL。如果没有列出 origin,或者 URL 看起来不正确,你需要重新添加远程仓库。

git remote -v

添加或修改远程仓库

$ git remote add origin https://github.com/usr-name/xxnet.git

再次推送 添加或修改远程仓库后,再次尝试推送:

$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 32 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 401 bytes | 401.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/galaxy-vagrant/P2Pnet.git
 * [new branch]      master -> master
branch 'master' set up to track 'origin/master'.

已经成功地将本地的 master 分支推送到了远程仓库 originmaster 分支

  1. 枚举对象:Git 计算了需要推送的对象数量。
  2. 计数对象:Git 完成了对象的计数。
  3. Delta 压缩:Git 使用 Delta 压缩来减少网络传输的数据量。
  4. 压缩对象:Git 完成了对象的压缩。
  5. 写入对象:Git 将对象写入了远程仓库。
  6. 推送结果:推送操作成功,master 分支被推送到了 https://github.com/galaxy-vagrant/P2Pnet.git
  7. 新分支:这是你第一次推送 master 分支到远程仓库,所以 Git 标记了它为新分支。
  8. 跟踪分支:本地的 master 分支现在设置为跟踪远程的 origin/master 分支。
    现在可以继续在本地进行开发,并且当你想要同步到远程仓库时,只需使用 git push 命令即可。同样地,当你想要从远程仓库拉取最新的更改时,可以使用 git pull 命令。

添加所有文件到Git:

$ git add .

提交这些文件到你的本地仓库

$ git commit -m "Initial commit"
[master 8b40d0b] Initial commit
 46 files changed, 4139 insertions(+)
 create mode 100644 LICENSE
 create mode 100644 README.md
 create mode 100644 README_vagrant.md
 create mode 100644 __pycache__/engine.cpython-38.pyc
 create mode 100644 crowd_datasets/SHHA/SHHA.py
 create mode 100644 crowd_datasets/SHHA/__init__.py
 create mode 100644 crowd_datasets/SHHA/__pycache__/SHHA.cpython-38.pyc
 create mode 100644 crowd_datasets/SHHA/__pycache__/__init__.cpython-38.pyc
 create mode 100644 crowd_datasets/SHHA/__pycache__/loading_data.cpython-38.pyc
 create mode 100644 crowd_datasets/SHHA/loading_data.py
 create mode 100644 crowd_datasets/__init__.py
 create mode 100644 crowd_datasets/__pycache__/__init__.cpython-38.pyc
 create mode 100644 crowd_datasets/dataset_tools/convert_to_center_points.py
 create mode 100644 crowd_datasets/dataset_tools/create_list.py
 create mode 100644 crowd_datasets/dataset_tools/draw_points_on_image.py
 create mode 100644 crowd_datasets/dataset_tools/move_images.py
 create mode 100644 engine.py
 create mode 100644 log/run_log.txt
 create mode 100644 models/__init__.py
 create mode 100644 models/__pycache__/__init__.cpython-38.pyc
 create mode 100644 models/__pycache__/backbone.cpython-38.pyc
 create mode 100644 models/__pycache__/matcher.cpython-38.pyc
 create mode 100644 models/__pycache__/p2pnet.cpython-38.pyc
 create mode 100644 models/__pycache__/vgg_.cpython-38.pyc
 create mode 100644 models/backbone.py
 create mode 100644 models/matcher.py
 create mode 100644 models/p2pnet.py
 create mode 100644 models/vgg_.py
 create mode 100644 requirements.txt
 create mode 100644 run_test.py
 create mode 100644 run_test_processfor_folder.py
 create mode 100644 tools_usr/Count_Lines.py
 create mode 100644 tools_usr/__pycache__/Count_Lines.cpython-38.pyc
 create mode 100644 tools_usr/calculate_mae.py
 create mode 100644 tools_usr/calculate_metric.py
 create mode 100644 tools_usr/vision_mae_mse.py
 create mode 100644 train.py
 create mode 100644 util/__init__.py
 create mode 100644 util/__pycache__/__init__.cpython-38.pyc
 create mode 100644 util/__pycache__/misc.cpython-38.pyc
 create mode 100644 util/misc.py
 create mode 100644 vis/congested1.png
 create mode 100644 vis/congested2.png
 create mode 100644 vis/congested3.png
 create mode 100644 vis/demo1.jpg
 create mode 100644 vis/net.png

推送代码到GitHub:

$ git push -u origin master
Enumerating objects: 62, done.
Counting objects: 100% (62/62), done.
Delta compression using up to 32 threads
Compressing objects: 100% (58/58), done.
Writing objects: 100% (61/61), 14.64 MiB | 845.00 KiB/s, done.
Total 61 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/usr-name/xxnet.git
   d52d8f4..8b40d0b  master -> master
branch 'master' set up to track 'origin/master'.

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐