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 之后项目
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
- 进入fork的仓库界面(warp会自动给出链接)
- 点击
Compare & pull request
按钮
- 填写必要信息后提交
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"
|