一些记录...

Lying awake and worrying about the day ahead.

0%

Git基本操作

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git 易于学习, 占地面积小, 性能极快。 它具有廉价的本地库, 方便的暂存区域和多个工作流分支等特性。 其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具.

创建仓库并推送到远程分支

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
1.在GitHub或Gitee创建仓库 // 名字小写
// Gitee账户要有电脑的SSH公钥(SSH和HTTPS是两个协议)

2.创建本地仓库
git init // 创建仓库
git add . // 将本目录所有文件加入暂存区
git commit -m"注释" // 提交

3.将本地仓库与Gitee/Github仓库关联
git remote add origin https:// ...

git remote add origin git@gitee.com:small-sea1/repo's name.git

// 可以用git push -f origin master 强制提交本地内容,取代4、5步

4.获取远程库与本地同步合并(远程库不为空必须做)
git pull --rebase origin master

5.将本地内容推送到仓库
git push -u origin master // 第一次后可以忽略 -u

// 修改远程仓库地址
git remote set-url origin git@gitee.com:账户名/filename.git

// git remote -v 查看远程仓库地址,仓库名称

// 删除关联仓库
git remote rm origin(仓库名)

本地仓库推送到远程仓库指定分支

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
1.初始化项目

git init

2.建立本地仓库和远程仓库的连接

git remote add origin 远程仓库URL

3.将码云上的仓库pull到本地

git pull origin 远程仓库分支名称

4.创建并切换分支,这里和远程仓库的分支要一致(选择指定推送的分支,使用git branch可以查看分支)

git checkout -b 远程仓库分支名称

5.将文件加载到暂存区(如果add错了可以使用git rm --cached 文件名 删除添加到暂存区的文件)

git add .

6.将文件提交到本地仓库(-m 为描述信息)

git commit -m "message"

7.将本地仓库推送到远程仓库

git push origin 远程仓库分支名称
// 也就是说,推送时本地仓库分支名称必须和远程仓库分支名称一致

分支管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 合并分支前要切换到master分支
// 创建并切换分支
git checkout -b dev 或 git switch -c <branchname>

// 切换分支
git branch <name>

// 合并某分支到当前分支
git merge <branchname> // 有冲突时先解决冲突,再继续合并

// 切换分支
git checkout <branchname> 或 git switch <branchname>

// 删除分支
git branch -d <branchname>

// 创建分支
git branch <branchname>

// 查看分支
git branch

文件删除相关

1
2
3
4
5
git rm <filename> 
git commit

// 工作区误删
git checkout -- <filename> // 用版本库里的版本替换工作区的版本

开源项目贡献流程

1. fork开源项目仓库

点击fork按钮即可

2. 克隆 fork 之后项目

1
git clone <仓库URL>

3. 在本地创建新分支

1
2
// 创建并切换到新分支
git checkout -b <branchName>

4. 编辑项目并提交记录

1
2
git add .
git commit -m "message"

5. 推送更改到Github

1
2
// 分支名字都是新的
git push origin <branchName>

6. Commit pull request

  1. 进入fork的仓库界面(warp会自动给出链接)
  2. 点击Compare & pull request按钮
  3. 填写必要信息后提交

    7. 等待审查

    如果开发者要求修改,则重复编辑、推送、提交request的过程

    8. 通过

    开发者会合并分支到主分支中

常用命令

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
35
36
37
38
39
40
// 该有的空格不要少
git add <filename> // 加入暂存区

git commit -m"notes" // 提交到仓库

git clone git@gitee.com:small-sea1/gitskills.git // 克隆远程仓库到本地

git status // 获得当前状态

git diff <filename> // 读取文件改变

git diff HEAD -- readme.txt // 查看工作区和版本库里面最新版本的区别

git log / git log --pretty=oneline // 查看提交历史[过去]

git reflog // 查看命令历史(包含commit id)[未来]

git reset --hard HEAD^ /HEAD^^^ /HEAD~100 /ID // (回到历史)

git checkout -- <filename> // 丢弃工作区修改,还原到版本库版本(添加到暂存区的版本不变)

git reset HEAD // 将暂存区全部文件恢复到上一次提交时的状态

git reset HEAD <file> // 将暂存区的修改回退到工作区

git rm <filename> // 将版本库中的文件删除 (随后需要git commit)

git branch // 查看分支

git log --graph // 查看分支合并图

git tag <name> // 创建标签 , 需要先switch到相应分支
git tag <name> 历史id
git tag // 查看标签
git show <tagname> // 查看标签信息
git tag -a <tagname> -m "blablabla..." // 制定标签信息
git push origin <tagname> // 推送本地标签
git push origin tags // 推送全部未推送本地标签
git tag -d <tagname> // 删除本地标签
git push origin :refs/tags/<tagname> // 删除远程标签

注意

初始化git账户时,下面的操作一次就可以

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"