Git常用命令小结
1 | git config --global user.name "John Doe" |
设置用户名称与邮件地址
1 | git config --global core.editor "'C:\Program Files\Notepad++\notepad++.exe' -multiInst -notabbar -nosession -noPlugin" |
设置默认文本编辑器
1 | git config --list |
列出所有 Git 当时能找到的配置
1 | git init |
在现有目录中初始化仓库
1 | git add *.c |
开始对指定文件的跟踪
或 更新文件到暂存区
1 | git add . |
1 | git status |
查看文件暂存状态
1 | git status -s |
查看文件暂存状态简览
文件.gitignore 忽略文件
忽略文件
1 | $ cat .gitignore |
第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二 行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副 本。
文件 .gitignore 的格式规范如下:
• 所有空行或者以 # 开头的行都会被 Git 忽略。
• 可以使用标准的 glob 模式匹配。
• 匹配模式可以以(/)开头防止递归。
• 匹配模式可以以(/)结尾指定目录。
• 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配 任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(? )只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配 (比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(*) 表示匹配任意中间目录,比如 a/**/z 可以匹配 a/z , a/b/z 或 a/b/c/z 等。
我们再看一个 .gitignore 文件的例子:
1 | # no .a files |
TIP: GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在 https://github.com/github/gitignore 找到它.
1 | git diff |
通过文件补丁的格式查看已暂存和未暂存的变化,显示具体哪些行发生了改变。
1 | git diff --staged |
查看已暂存的将要添加到下次提交里的内容。
1 | git commit |
提交更新
1 | git commit --amend |
重新提交并覆盖上一次提交的数据
1 | git rm |
从 Git 中移除某个文件
1 | git rm --cached README |
当我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。 换句话说,你想让文件保留在磁盘但是并不想让 Git 继续跟踪。可以使用这种方法。
1 | git mv file_from file_to |
移动文件/重命名文件
1 | git log |
查看提交历史
1 | git commit --amend |
撤消操作:重新提交并代替上一次提交结果
1 | git reset HEAD <file> |
取消暂存文件
1 | git checkout -- [file] |
撤消对文件的修改
1 | git clone [url] |
克隆仓库
1 | git clone https://github.com/libgit2/libgit2 mylibgit |
如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用此命令。
1 | git branch (branchname) |
创建分支
1 | git checkout (branchname) |
切换分支
1 | git merge |
合并分支
1 | git branch |
列出分支
1 | git tag |
列出标签
1 | git tag -a <标签名字> |
创建附注标签
1 | git tag <标签名字> |
创建轻量标签
1 | ssh-keygen -t rsa -C "youremail@example.com" |
配置验证信息:生成SSH Key
会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。到github上,进入 Account Settings(账户配置),左边选择SSH Keys,Add SSH Key,title随便填,粘贴在你电脑上生成的key。
验证是否配置成功:ssh -T git@github.com
更多帮助:https://help.github.com/cn/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
1 | git push <远端仓库路径> <分支名> |
将文件推送到远程仓库
例如:
1 | git push -u <远端仓库路径> master |
将本地的master分支推送到远端仓库,同时指定该远端仓库为默认主机,后面就可以不加任何参数使用git push了。
1 | git remote add [shortname] [url] |
指定一个简单的名字,以便将来引用该仓库
如:git remote add origin git@github.com:mojombo/grit.git
1 | git remote -v |
执行时加上 -v 参数,你还可以看到每个别名的实际链接地址。
1 | git remote rm [别名] |
移除引用
1 | git remote rename <原别名> <新别名> |
重命名引用的名字
1 | git fetch |
从远程仓库下载新分支与数据
1 | git pull |
从远端仓库提取数据并尝试合并到当前分支
例如:
1 | git pull <远端仓库路径> <远程分支名>:<本地分支名> |
将远端仓库中的远程分支合并到本地分支