1.基本的使用
dd@ubuntu:~/Desktop/gittest$ git init
Initialized empty Git repository in /home/dd/Desktop/gittest/.git/
dd@ubuntu:~/Desktop/gittest$ ll
total 12
drwxrwxr-x 3 dd dd 4096 Feb 10 07:00 ./
drwxr-xr-x 4 dd dd 4096 Feb 10 06:53 ../
drwxrwxr-x 7 dd dd 4096 Feb 10 07:00 .git/
dd@ubuntu:~/Desktop/gittest$
dd@ubuntu:~/Desktop/base$ git clone /home/dd/Desktop/gittest/.git
Cloning into 'gittest'...
done.
dd@ubuntu:~/Desktop/gittest$ touch 1 2 3
dd@ubuntu:~/Desktop/gittest$ git add 1
dd@ubuntu:~/Desktop/gittest$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 1
Untracked files:
(use "git add <file>..." to include in what will be committed)
2
3
dd@ubuntu:~/Desktop/gittest$ git commit -m "1.0"
dd@ubuntu:~/Desktop/gittest/.git$ git log
commit bd06b545f4b04943448d44651ed233ec73f6ce7c (HEAD -> master)
Author: Your Name <you@example.com>
Date: Fri Feb 10 07:05:47 2023 -0800
1.0
dd@ubuntu:~/Desktop/gittest/.git$ git config --global alias.ll 'log --oneline --all --graph'
dd@ubuntu:~/Desktop/gittest/.git$ git ll
* bd06b54 (HEAD -> master) 1.0
规则
# 忽略所有的 .a 文件
*.a
# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a
# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc*.pdf
远程仓库在本地是不可以直接修改的,只能拉取过来,然后得到commit_id,本地如果使用的话得建立分支,然后就可以进行push
dd@ubuntu:~/Desktop/base/gittest$ git remote -v
origin /home/dd/Desktop/gittest/.git (fetch)
origin /home/dd/Desktop/gittest/.git (push)
dd@ubuntu:~/Desktop/base/gittest$ git remote add test_origin /home/dd/Desktop/base2/.git
dd@ubuntu:~/Desktop/base/gittest$ git remote -v
origin /home/dd/Desktop/gittest/.git (fetch)
origin /home/dd/Desktop/gittest/.git (push)
test_origin /home/dd/Desktop/base2/.git (fetch)
test_origin /home/dd/Desktop/base2/.git (push)
dd@ubuntu:~/Desktop/base/gittest$ git remote remove test_origin
dd@ubuntu:~/Desktop/base/gittest$ git remote -v
origin /home/dd/Desktop/gittest/.git (fetch)
origin /home/dd/Desktop/gittest/.git (push)
dd@ubuntu:~/Desktop/base/gittest$ git ll
* bd06b54 (HEAD -> master, origin/master, origin/HEAD) 1.0
dd@ubuntu:~/Desktop/base/gittest$ git fetch origin
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), 208 bytes | 208.00 KiB/s, done.
From /home/dd/Desktop/gittest/
bd06b54..e88ab17 master -> origin/master
dd@ubuntu:~/Desktop/base/gittest$ git ll
* e88ab17 (origin/master, origin/HEAD) add file 2
* bd06b54 (HEAD -> master) 1.0
dd@ubuntu:~/Desktop/base/gittest$ git ll
* b5580d9 (HEAD -> master, push_branch) add file 1.1
| * e88ab17 (origin/master, origin/HEAD) add file 2
|/
* bd06b54 1.0
dd@ubuntu:~/Desktop/base/gittest$ git push origin push_branch
dd@ubuntu:~/Desktop/gittest$ git ll
* b5580d9 (push_branch) add file 1.1
| * e88ab17 (HEAD -> master) add file 2
|/
* bd06b54 1.0
标签
2.分支
dd@ubuntu:~/Desktop/base/gittest$ git ll
* b5580d9 (tag: v1.0, origin/push_branch, push_branch, master) add file 1.1
| * e88ab17 (HEAD -> test_branch, origin/master, origin/HEAD) add file 2
|/
* bd06b54 1.0
dd@ubuntu:~/Desktop/base/gittest$ git checkout master
Switched to branch 'master'
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
(use "git pull" to merge the remote branch into yours)
dd@ubuntu:~/Desktop/base/gittest$ git ll
* b5580d9 (HEAD -> master, tag: v1.0, origin/push_branch, push_branch) add file 1.1
| * e88ab17 (origin/master, origin/HEAD, test_branch) add file 2
|/
* bd06b54 1.0
dd@ubuntu:~/Desktop/base/gittest$ git merge test_branch
Merge made by the 'recursive' strategy.
2 | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 2
dd@ubuntu:~/Desktop/base/gittest$ git merge test_branch -m "merge test"
Already up to date.
dd@ubuntu:~/Desktop/base/gittest$ git ll
* 9d07aaf (HEAD -> master) Merge branch 'test_branch'
|\
| * e88ab17 (origin/master, origin/HEAD, test_branch) add file 2
* | b5580d9 (tag: v1.0, origin/push_branch, push_branch) add file 1.1
|/
* bd06b54 1.0
3.reset
//git reset commit_id --hard 重置版本,commit_id之后的commit_id都会不见了
//git revert commit_id -m "xx"还原此commit_id的操作,比如添加了一个文件,那么revert将会减少那个文件