Git 常用命令
1. Set up 仓库
- 查看remote是哪个:
git remote -v - 更换远程仓库:
git remote set-url origin xxx - 移除远程仓库:
git remote remove origin
git remote -vgit remote set-url origin xxxgit remote remove origin[toc]
本系列文章是针对计算机经典书籍《Git 权威指南》的精简版学习笔记,方便大家快速了解内容以及速记,欢迎订阅
上一篇文章,我们学习了创建版本库的几个命令,不熟悉的同学可以参考 Git初始化
git log --statecho "Nice to meet you" >> welcome.txtgit diff
diff --git a/welcome.txt b/welcome.txt
index 18832d3..9c2a787 100644
--- a/welcome.txt
+++ b/welcome.txt
@@ -1 +1,2 @@
Hello.
+Nice to meet you
git commit -m "Append a nice line."git diff 可以看到和之前一样的结果,说明没有提交成功git status查看文件状态,可以看到文件处于修改状态,git status -s
➜ git commit -m "Append a nice line."
On branch master
Changes not staged for commit:
modified: welcome.txt
no changes added to commit
git add命令git add welcome.txtgit diff HEADgit diff --staged 或 git diff --cachedgit status -sM welcome.txt M welcome.txtecho "Bye-Bye." >> welcome.txtgit status -sMM welcome.txtgit commit -m "which version checked in?"git log --pretty=onelinegit status -sgit diffgit status 原理.git/index
<file> 命令时,会直接从暂存区删除文件,工作区则不做出改变<file> 命令时,会用暂存区全部的文件或制定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动<file> 命令时,会用HEAD指向的master分支中的全部或者部分文件替换暂存区和工作区中的文件,这个命令也是极具危险性的,因为不但会清除工作区中的未提交的改动,也会清除暂存区中未提交的改动
➜ git ls-tree -l HEAD
100644 blob 7e12803b85898fd0ae42d0a793c3eaf9f0cdd66e 28 test.ini
100644 blob 9c2a787a930a7b547abdf71e47ab1a67de890832 24 welcome.txt
-l 参数可以显示文件的大小git checkout .
[toc]
本系列文章是针对计算机经典书籍《Git 权威指南》的精简版学习笔记,方便大家快速了解内容以及速记,欢迎订阅
git --versiongit version 2.24.3 (Apple Git-128)git init demomkdir democd demogit initls -aF./ ../ .git/.git 就是Git版本库(又叫仓库,repository)~/coding/git/demoecho "Hello." > welcome.txtgit add welcome.txt将新建立的文件添加到版本库git commit -m "initialized."-m 为提交说明[master (root-commit) 1a557fb] initialized. 从这可以看出此次提交在名为master分支上,且是该分支的第一个提交(root-commit),提交ID为1a557fb1 file changed, 1 insertion(+)可以看出此次提交修改了一个文件,包含一行的插入create mode 100644 welcome.txt 可以看出此次提交创建了一个新文件git grep "Hell"welcome.txt:Hello.mkdir -p a/b/ccd a/b/c~/coding/git/demo/a/b/cgit rev-parse --git-dir/Users/xujie/coding/git/demo/.gitgit rev-parse --show-toplevel/Users/xujie/coding/git/demogit rev-parse --show-prefixa/b/c/git rev-parse --show-cdup../../../git config -e./demo/.git/config (版本库级别,优先级最高)git config -e --global~/.gitconfig (用户全局配置) git config -e --system/etc/gitconfig (系统级别)cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
git config <section>.<key>git config core.barefalsegit config a.b somethinggit config x.y.z something
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[a]
b = something
[x "y"]
z = something
GIT_CONFIG=test.ini git config a.b.c.d "hello, world"
$ cat test.ini
[a "b.c"]
d = hello, world
GIT_CONFIG=test.ini git config a.b.c.dhello, worldgit config --unset --global user.namegit config --unset --global user.emailgit commit --allow-empty -m "who does commit?"
[master df2b623] who does commit?
Committer: xujie <xujie@xujies-MacBook-Pro.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 2 insertions(+)
create mode 100644 test.ini
git log --pretty=fuller
commit df2b62367ca80056d248113aed8f3dd4d10dcdca (HEAD -> master)
Author: xujie <xujie@xujies-MacBook-Pro.local>
AuthorDate: Wed Sep 28 22:37:49 2022 +0800
Commit: xujie <xujie@xujies-MacBook-Pro.local>
CommitDate: Wed Sep 28 22:37:49 2022 +0800
who does commit?
commit 1a557fb84b2ed006bca7395729b1efb71baf96f1
Author: jiexu <admin@example.com>
AuthorDate: Wed Sep 28 21:39:06 2022 +0800
Commit: jiexu <admin@example.com>
CommitDate: Wed Sep 28 21:39:06 2022 +0800
initialized.
git config --global user.name "jiexu"git config --global user.email jiexu@example.comgit commit --amend --allow-empty --reset-author