基础命令
git config --global:git配置 总体的
git status: 查看项目当前的状态
git init:初始化一个空白的仓库
rm -rf .git:如果你不想对这个项目做源代码管理了,可以删除掉项目的 Repository,也就是删除掉 .git 这个目录。删除东西可以使用 rm 这个命令,加上一个 -rf 选项,然后是要删除的东西,比如删除掉 .git 这个目录。
Untracked files: Untracked files下面的文件表示还没有做源代码管理,或者叫版本控制。
git add:git add 命令添加要保存在提交里的修改,如果要在提交里包含当前项目里的所有的修改,或者用 --all 这个选项。
git add .:添加在根目录上所有的修改
Changes to be committed 的下面,也就是要提交的修改的下面会出现一些东西,这些就是要保存在提交里的对项目做的修改。
现在有两个 new file,也就是新文件。 如果你突然改变主意了,比如不想把 src/main.js
这个文件的修改包含在这次提交里,可以使用 git rm 命令,需要使用一个 --cached 选项,后面加上已经添加的要提交的文件,这里就是src/main.js。
commit:确定这次提交
执行 git commit ,提交的时候,用一个 -m 选项,设置一条描述信息。比如 init ,表示初始化。
git log:查看一下提交的历史记录
每条记录里会有这次提交的作者是谁,是在什么时间做的这次提交。另外在 commit 的后面,是这次提交的 ID
号,查看或者恢复这次提交的时候都需要用到这个 ID 号,只需要其中的一小部分就可以了。
git log --oneline :简单的形式展示提交的历史记录
git show “ID 号” :这行命令会显示在这次提交里都动了哪些文件的哪些地方。
Changes not staged for commit:提交时未暂存的修改,项目里的修改还没有添加到暂存区里就会出现在这个提示下面
git reset HEAD “文件名”:把文件从暂存区拿出
git checkout --“文件名”:把这个文件的状态恢复到上一次提交时的样子
分支
git branch:这个命令会显示项目里的分支
git branch “分支的名字” :创建一个新的分支
git checkout “要切换分支的名字”:切换分支
git checkout -b “分支的名字”:如果要切换到这个分支还不存在就会自动给我们创建一个
git reset HEAD~ :重置最近做的提交
git merge “要合并分支的名字”:合并分支
git branch -m “原来的分支名字” “想要修改的分支名字” :修改分支名字
远程仓库
ssh-keygen:生成一对秘钥,放在 .ssh 目录的下面。有两个文件,id_rsa 还有 id_rsa.pub。这里的 id_rsa 是密钥文件,id_rsa.pub 是公钥文件。
cat ~/.ssh/id_rsa.pub:输出秘钥的内容
复制秘钥,然后登录 Github 网站,在用户的 Settings 页面,打开 SSH and GPG Keys, 点击 New SSH
Key,新添加一个 SSH Key ,输入一个标题,标题的内容无所谓,填什么都没什么影响。 在 Key
的下面,把刚才复制的公钥文件里的内容,粘贴到这里。 点击这个 Add SSH Key,添加 SSH
密钥。提示我们要输入帐号的密码,输入密码,点击确定。
创建的远程仓库提供了两种仓库地址,可以选择使用 SSH 这种类型的仓库地址
git remote -v :查看本地项目里的远程。(有两个地址,一个是 fetch,是下载用的,一个是 push,是上传用的)
git remote add “给要添加的远程起的名字” “SSH 这种类型的仓库地址:添加远程
git remote add origin git@github.com:1363944642/xb2-node.git
git push “远程名字” “分支”:意思就是把本地上的 某分支上的东西,上传到 某个远程的上面。
git push origin master
完成以后,可以回到远程仓库页面,刷新一下,这里会显示刚才推送上来的项目,现在,在这个远程仓库上面也会有一个叫 master 的分支,里面的东西跟我们在本地上的 master 分支是一样的。
git pull “远程仓库名字” “分支名”:下载来自远程仓库里的新东西合并到本地分支上
这个命令会把下载下来的新东西合并到当前的分支上。
.gitignore文件:在项目里有些东西是不需要做源代码管理的,也就是不需要在项目仓库里包含它们。这些东西可以在一个叫 .gitignore 的文件里列出来。