windows 和 debian 安装方法
一、安装 git
windows10
下载地址
http://git-scm.com/download/
使用方法
在本地项目目录的空白处右键-“Open Git Bash here”
debian11
1 2
| apt update apt -y install git
|
二,为Github账户设置SSH key
1 2 3 4
|
ssh-keygen -t rsa -C "pub@github"
|
#默认生成公钥的位置,
#C:\Users\你的用户名.ssh # windows
#/root/.ssh/ # linux root
#/home/user/.ssh/ # linux 普通用户
#注意:root和user生成的公钥各自独立,每个用户都要在github后台增加 ssh key
1 2 3
| ssh-keygen -t rsa -f /root/.ssh/id_rsa.github
|
##################操作说明
#打开 id_rsa.pub 并复制公钥内容,在 github.com 用户后台页面左侧新增一个 ssh key
#个人头像 -> settings -> SSH and GPG keys -> New SSH key
##Title 标题 随便写一个
##Key type 类型 选择 Authentication Key
##Key 粘贴 id_rsa.github.pub 公钥内容
#id_rsa.github.pub 公钥内容类似如下:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA3U= pub@github
三、全局部署 GitHub 用户名和邮箱,让 GitHub 知道你是谁。
用户名:abc123 邮箱:abc123@gmail.com
1 2 3 4
| git config --global user.email abc123@gmail.com git config --global user.name abc123 #可选(有时会提示增加一个安全目录) git config --global --add safe.directory /home/hexo/.hexo
|
四,上传本地项目
1、第一次上传新项目
适用于:本地项目第一次上传。在”project”下执行 git 命令,目录结构如下:
1 2 3 4
| /project -- 项目文件1 -- 项目目录1 ---- 项目文件2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| # 初始化本地项目,会在本地项目目录下新建 .git 文件夹(此文件夹是隐藏的) git init
# 设置别称 node_test 并与远程仓库关联,别称可以随便起(仅第一次需要) git remote add node_test git@github.com:abc123/node_demo.git
# 把准备添加到仓库的文件放到暂存区 git add . #添加project目录内所有文件 git add 项目目录1/ #添加project目录下的项目目录1内所有文件 git add README.md #添加project目录中单个文件
# 准备提交到仓库 -m "此处是目录或文件的更新日志" git commit -m "修改了文件中的小bug"
# 第一次上传项目时,为项目设置一个分支,不设置则默认是 master,这里定义的是 main 分支(此步为可选) #git branch -M main
# 如果你是修改代码后上传到仓库,这一步是标准操作,也是个好习惯(如果是新创建的仓库,可以省略) # 拉取仓库数据, -r 指定pull的方式为rebase。文章底部有关于 pull 方式的解释 git pull -r node_test master # master 是仓库的分支
# 上传代码到GitHub仓库 git push -u node_test master # master 是仓库的分支
|
2、为远程项目新增内容
适用于:本地项目已经被删除时,想把”新建文件夹”下的内容上传到github仓库中。在”新建文件夹”下执行 git 命令,目录结构如下:
1 2 3 4
| /新建文件夹 -- 要新增的文件1 -- 要新增的目录1 ---- 要新增的文件2
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # 先初始化 git init
# 为仓库 git@github.com:abc123/node_demo.git 创建别名 node_test 方便后面简化操作 git remote add node_test git@github.com:abc123/node_demo.git
# 拉取仓库数据, -r 指定pull的方式为rebase # 文章底部有关于 pull 方式的解释 git pull -r node_test master
#添加目录内所有文件到暂存区 git add .
#提交并为每个文件加上日志说明"add posts" git commit -m "add posts"
#上传 git push -u node_test master
|
总结
每次修改本地项目后都要进行上面的操作太麻烦了,如果不是第一次上传,可以简化命令,最多只需要4步
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| # 1、添加目录内所有文件操作到暂存区(文件操作包括:修改、删除、新增文件) git add .
# 2、提交文件操作并加上日志"ssl bugs xxx" git commit -m "ssl bugs xxx"
# 如果文件操作只是修改、删除文件,没有新增文件,第1步和第2步可以合并成一条命令,如下: git commit -a -m "ssl bugs xxx" 或 git commit -am "ssl bugs xxx" #以下是返回内容 #[master df65159] ssl bugs xxx #2 file changed, 2 insertion(+), 2 deletion(-)
# 3、从远程仓库拉代码(当仓库有多个管理者时,此为标准动作) git pull #以下是返回内容 #Current branch master is up to date.
# 4、上传 git push #以下是返回内容 #Enumerating objects: 16, done. #Counting objects: 100% (16/16), done. #Delta compression using up to 2 threads #Compressing objects: 100% (9/9), done. #Writing objects: 100% (9/9), 1.43 KiB | 730.00 KiB/s, done. #Total 9 (delta 5), reused 0 (delta 0), pack-reused 0 #remote: Resolving deltas: 100% (5/5), completed with 5 local objects. #To github.com:abc123/hexo_project.git # f6b5b58..9d2c11f master -> master
|
pull 方式的区别
merge 是一个合并操作,将两个分支的修改合并在一起,会提交合并中修改的内容。
rebase 并没有进行合并操作,只是提取了当前分支的修改。rebase 操作会丢弃当前分支已提交的 commit,不要在有协作开发的分支上执行 rebase 操作。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 在每次执行 git pull 命令之前运行一次 git config pull.rebase false # merge #或者 git config pull.rebase true # rebase # 然后再执行 git pull 命令 git pull node_test master
# 以上也可以直接合并成一条命令 git pull -r node_test master # 或者 git pull --rebase node_test master
# 当然,你还可以通过执行 git config --global 命令来永久指定默认的处理方式,比如: git config --global pull.rebase true # 设置默认使用 rebase 方式 # 以后直接 git pull node_test master
|
上传时排除文件和目录
如果只想上传一部分文件可以在项目目录下创建一个名为 .gitignore 的文件,在里面加上不想上传的文件或目录即可,例如:
1 2 3 4 5 6 7 8 9 10 11 12
| .DS_Store Thumbs.db db.json *.log node_modules/ public/ .deploy*/ _multiconfig.yml themes/ .git/ .github/ desktop.ini
|
git 其他命令