Git笔记
本地操作
git init初始化一个本地仓库git add .添加所有文件到暂存区git commit -m "message"提交暂存区的文件到本地仓库git status查看当前状态
分支操作
git branch查看分支git branch <branch-name>创建分支git checkout <branch-name>切换分支-
git checkout -b <branch-name>创建并切换分支 -
git merge <branch-name>将其他分支合并进当前分支 -
git branch -d <branch-name>删除分支 -
将某个分支上的文件复制到另一分支
查看历史
git log查看提交历史git log --oneline查看简洁的提交历史git log --graph查看分支合并情况git log --all显示其它分支的信息
回退
git reset --hard <commit-id>回退到commit-id对应的版本,添加到暂存区但是没有提交到本地仓库的内容以及没有存入暂存区的内容全部彻底消失。commit-id可以用git log相关指令查看。
取消对文件的追踪
git rm --cached <file-name>取消对文件的追踪,但不删除文件git rm -r --cached <folder-name>取消对文件夹的追踪,但不删除文件夹
远程仓库
git clone <repo-url>克隆远程仓库git clone <repo-url> <local-directory-name>克隆远程仓库到指定目录
如果报错没有权限,需要配置SSH key。参考CSDN。 注意这种方法在后续克隆的时候要采用SSH的方式,而不是直接输入仓库HTTPS地址。
git remote add <origin-name> <repo-url>添加远程仓库地址<origin-name>一般为origin,如果有多个远程仓库,可以取其他名字
git remote -v查看远程仓库地址-
git push <origin-name> <branch-name>推送本地仓库到远程仓库- 第一次推送,需要加上
-u参数,即git push -u <origin-name> <branch-name> - 如果想要本地与远程分支名称不同,可以
git push <remote> <local-branch>:<remote-branch>
- 第一次推送,需要加上
-
git pull <origin-name> <branch-name>拉取远程分支到本地,同时合并 git fetch <origin-name> <branch-name>从远程仓库拉取最新的分支,但不合并git checkout -b <new-branch-name> <origin-name>/<branch-name>将远程分支拉取到本地并创建一个新的分支
为单个服务器赋予操作单个仓库的权限
- 命令行执行
ssh-keygen -t ed25519 -C "<email>"生成SSH key,将<email>替换为真实邮箱。此时生成的SSH key的私钥位于~/.ssh/id_ed25519 - GitHub 仓库的 Settings 下找到 Deploy key,添加公钥
- 修改
~/.ssh/config,添加如下内容 - 克隆仓库时使用
git clone git@github.com:OWNER/reponame.git