Git 的四个工作区域
Git 初始化本仓库
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 31 32 33
| $ mkdir test_repo $ cd test_repo
$ git init
$ tree -al ../test_repo test_repo/ └── .git ├── branches ├── config ├── description ├── HEAD ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── pre-commit.sample │ ├── prepare-commit-msg.sample │ ├── pre-push.sample │ ├── pre-rebase.sample │ └── update.sample ├── info │ └── exclude ├── objects │ ├── info │ └── pack └── refs ├── heads └── tags
|
Git 配置签名(本地库)
这里的签名仅仅是为了方便标识提交代码的作者身份,并不用于 Git 远程库(Github)的身份认证(例如 Github 登录)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $ cd git_test
$ git config --help
$ git config user.name peter $ git config user.email peter@gmail.com
$ cat .git/config [user] name = peter email = peter@gmail.com
$ git config --get user.name $ git config --get user.email
$ git config --unset user.name $ git config --unset user.email
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $ git config --global user.name peter_glb $ git config --global user.email peter@gmail.com
$ cat ~/.gitconfig [user] name = peter_glb email = peter@gmail.com
$ git config --global --get user.name $ git config --global --get user.email
$ git config --global --unset user.name $ git config --global --unset user.email
|
Git 操作新建的文件(本地库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ git status
$ git add api.json
$ git rm --cached api.json
$ git add --all
$ git commit api.json -m 'create message'
$ git commit -am "create message"
|
Git 操作修改过的文件(本地库)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ git checkout -- api.json
$ git add api.json
$ git reset HEAD api.json
$ git add --all
$ git commit api.json -m 'update message'
$ git commit -am "update message"
|
Git 忽略追踪已提交过的文件与文件夹
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $ touch .gitignore
$ vim .gitignore
$ git rm --cached shop.cpp $ git rm -f --cached shop.cpp $ git rm -r -f --cached store/
$ git add --all && git commit -am 'Cancel tracking file'
|
Git 设置代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ git config http.proxy http://192.168.1.122:1080
$ git config --global http.proxy 192.168.1.122:1080
$ git config http.proxy socks5://192.168.1.122:1081
$ git config --global http.proxy socks5://192.168.1.122:1081
$ git config --unset http.proxy
$ git config --global --unset http.proxy
|
Git 设置用户名、邮箱
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| $ git config --list
$ git config --list --global
$ git config user.name clay $ git config user.email example@qq.com
$ git config --global user.name clay $ git config --global user.email example@qq.com
$ git config --global --unset user.name $ git config --global --unset user.email
|
Git 更改最后一次提交的信息
1 2 3 4 5 6 7 8
| $ git commit --amend
$ git commit --amend --author=clay
$ GIT_COMMITTER_DATE="2021-02-04T12:32:03" git commit --amend --date="2021-02-04T12:32:03"
|
Git 撤销提交并清除痕迹
1 2 3 4 5 6 7 8 9 10 11 12
| $ git reset --hard HEAD~4
$ git reflog $ git reset --hard 6ddd44e
$ git push -f
$ git push origin master -f
|