[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.