git

git 命令 基础知识

Posted by ThreeStones1029 on November 3, 2023

[toc]

一、前言

本文主要记录一些常用的git命令,为了方便以后使用。

二、git常用命令

2.1.初始化本地仓库并首次提交

git init # 初始化本地仓库
git add . # 添加所有文件到待提交区
git commit -m "first commit" # 双引号写提交记录
git branch -M main # 新建分支
git remote add origin git git@github.com:github用户名/仓库名.git
git push -u origin main # 提交

2.2.初始化本地仓库git管理

git init

2.3.添加文件到暂存区

git add filename
git add . #提交项目里面所有文件

2.4.添加提交信息

git commit -m '提交信息'

2.5.查看状态

git status

2.6.提交到远程仓库

# 选一个就行,看自己想提交到哪个分支
git push -u origin master #提交到master分支
git push -u origin main #提交到main分支

2.7.重命名

修改的是已经git管理的文件,还没有用git管理的直接修改文件名即可。

2.7.1.修改文件名

git mv old_file_name new_file_name

2.7.2.添加提交信息

git commit -m "提交信息"

2.7.3.提交到远程仓库

# 选一个就行,看自己想提交到哪个分支
git push -u origin master #提交到master分支
git push -u origin main #提交到main分支

报错

To https://github.com/ThreeStones1029/ThreeStones1029.github.io.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ThreeStones1029/ThreeStones1029.github.io.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这应该是远程仓库和本地仓库没有同步报错,需要同步

2.8.更新远程仓库到本地仓库

git pull origin master
git pull origin main #根据需要二选一

运行后需要vim添加合并信息

输入i表示输入,Esc退出插入模式,:wq保存并退出

或者是nano编辑器,可以crtl+O保存,然后enter继续

crtl+x保存并退出,选择y再enter

**PS:这条命令会同步远程仓库到本地仓库,所以如果有不同,肯能会删除你本地仓库的文件.

2.9.使用gitignore文件

可以在根目录下新建文件gitignore文件,然后在里面填上不需要提交的文件,例如:

target          //忽略这个target目录
angular.json    //忽略这个angular.json文件
log/*           //忽略log下的所有文件
css/*.css       //忽略css目录下的.css文件

2.10.修改远程仓库

git remote -v # 查看远程仓库列表
git remote set-url origin 新仓库

2.11.查看本地git配置

git config -l

3.git基础

3.1.git upstream 和 origin 的区别

当fork别人的仓库后,下载到本地运行git remote -v会得到类似下面的输出

origin    https://github.com/Username/repository_name.git (fetch)
origin    https://github.com/Username/repository_name.git (push)
upstream    https://github.com/upstream_Username/upstream_repository_name.git (fetch)
upstream    https://github.com/upstream_Username/upstream_repository_name.git (push)

这里的origin指fork后仓库,也就是自己的仓库,upstream表示上游仓库,也就是你fork的原仓库.

4.git常见需求

4.1.在另外一台电脑同步一份本地仓库

4.1.1.直接拷贝本地仓库从A电脑到电脑

4.1.2.正常git add / git commit -m /git push -u origin master

这时提交会需要用户名以及密码

Ps:2021年后github不再支持用户名和密码的方式验证,可以使用用户名和token的方式提交,如何创建token可以查看该4.2.

也即输入用户名和token提交.

Username for 'https://github.com': 输入用户名
Password for 'https://XXX@github.com':输入token

4.1.3.简化提交

事实上,我们不可能每次提交都输入用户名和token,这多多少少有点不方便.

我们可以token放在远程仓库地址,例如

git remote remove origin # 删除原有的链接
git remote -v # 查看是否已删除
git remote add origin https://token@github.com/xxx/xxxx.git # 将token加入

添加后就可以正常使用了.

4.2.创建token

点击个人头像–>Settings–>Developer settings–>Personal access tokens–>Tokens(classic)–>Generate new token–>Generate new token(classic)–>fill the Note expiration and choose repo–>Generate Token.

Ps:The will only appear once,so you need copy and record it.

持续更新中…