git基础命令及概念

理解 git origin 的意思

知乎 - Git 里面的 origin 到底代表啥意思?

git remote

{git url} your git url

1
2
3
4
5
6
7
8
9
mkdir mygit
cd mygit
git init
# 添加GIT远程地址 标志为origin
git remote add origin {git url}
# 添加GIT远程地址 标志为upstream
git remote add upstream {git url}
git remote
git remote -v

推送分支到远程 git

1
2
3
4
5
touch a
git push -u origin master
git push -u upstream master
# 本地分支名:远程分支名
git push -u upstream master:v1.0

修改远程 GIT 地址

1
git remote set-url upstream {url}

修改远程 GIT 标识

1
git remote rename upstream {newname}

删除远程 GIT

1
git remote remove {remote git name}

设置文件忽略

git ignore

设置命令 alias

1
git config --global alias.st status

or
edit ~/.gitconfig

1
2
[alias]
st = status

git alias setting
学习 alias 是有一定必要性的,一方面是理解和掌握命令,另一方面是便捷性

解决冲突练习

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
34
# 随便给早先创建的a文件添加一些内容
curl https://www.google.com/search\?q\=git+origin+%E7%9F%A5%E4%B9%8E\&rlz\=1C5CHFA_enJP904JP904\&oq\=git+origin+%E7%9F%A5%E4%B9%8E\&aqs\=chrome..69i57j69i64l2.5458j0j1\&sourceid\=chrome\&ie\=UTF-8 > a
git add .
git checkout -b f/#1
git commit -m "some"
cd ..
git clone {git url} subtest
cd ../mygit
git push -u origin f/#1

// 远端GIT合并分支

cd ../subtest
git checkout -b f/#3
curl https://zh-hans.reactjs.org/docs/context.html\#before-you-use-context >a
git add .
git commit -m "update 1"
curl https://www.urara.top/2020/10/29/start-react-project/
git add .
git commit -m "update 2"

git checkout -b f/#3bakk
git checkout master
git pull

git checkout f/#3
git rebase master
// fix conflict
git add a
git rebase --continue
// 重复到解决所有冲突,然后命令行会现实如下信息, 重新返回到了f/#3分支
// subtest git:(f/#3)
git log
// 可以看到解决冲突的所有日志, 每一次解决冲突都会做一次保存,生成一个新的log

git log 命令详解

仔细看日志, 记住两条重要信息的 log id, 类似:

1
2
commit e22bef1c33fd9dd952bef802783f4e1c8edb3b04 (HEAD -> f/#3)
commit 18b263290466f32c595e6f29085995a218ae4aaf (origin/master, origin/HEAD, master)

仅针对一条 issue 的对应,提交的 commit 内部推荐仅一条 log 信息,方便日后对比观察

1
git rebase -i  18b263290466f32c595e6f29085995a218ae4aaf e22bef1c33fd9dd952bef802783f4e1c8edb3b04

此时会跳转到编辑窗口, 编辑除第一条外的所有行首的picks, 表示squash 合并

1
2
3
pick 3d675bf update 1
s de96fd4 2
s e22bef1 3

:wq 退出编辑

此时自动跳转到commit编辑窗口, 编辑并退出

这时会生成一个临时分支
创建新分支并提交该分支即可

1
git log --graph --pretty=oneline --abbrev-commit

merge 和 rebase 区别

gist 参考文章

#

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×