Git 如何用? 看这一篇就够了
对新手友好的 Git 使用总结 老手欢迎留言讨论
前言
关于 Git 的思想、概念等知识搜索结果有很多,本篇不再赘述,而是直接说下在项目开发中经常用到的一些命令,相信对你之后的使用会有很大的帮助。
下面会根据处于的开发阶段来详细说明。
一. 准备开发
1、项目已存在,只需要克隆
这种情况,一般是刚入职或者刚接受一个已经存存的项目,那么只需要拿到项目的 git 地址,
在指定目录中执行
git clone https://github.com/haoyh/GitCommands.git
(需改为你的实际路径)即可,接下来就可以愉快的开始写代码了。
2、创建了新项目,需要配置 Git
首先在 GitHub 新建一个仓库,仍使用 GitCommands/ 这个仓库来举例说明。
然后有两种方式将仓库同本地项目关联。
a) 按步骤 1 将仓库克隆到本地得到 GitCommands/ ,然后将本地项目 GitCommandsLocal/ 的内容拷贝至仓库目录中。
b) 在本地项目 GitCommandsLocal/ 目录中,执行 git init
,
然后设置仓库地址执行 git remote add origin https://github.com/haoyh/GitCommands.git
二、开发中
1、文件/内容变更
提交修改需要:status(查看修改内容,确认变更无错误)、add(添加修改文件)、commit(提交说明)、push(真正的提交)
git status
// 查看都修改了哪儿些文件
git add .
// . 指代当前路径所有变化的问题,也可以改为具体的文件
git commit -m "msg"
// msg: 本次提交说明,建议写的详细些
git push origin dev1:dev2
// 提交到远程分支,dev1 为本地分支名,dev2 为对应的远程分支名,建议本地远程分支命名统一
git checkout a.txt
// 未执行 add前,撤销某个文件的修改,也可以用 . 就是当前所有文件(注意 . 只能撤销文本文件的修改,对新建的文件、目录无效)
git reset HEAD .
// . 当前所有文件,也可以指定某个文件(已经执行了add,但是又不想commit时用)
2、分支
git branch
// 查看本地分支
git branch -a
// 查看所有分支,包括远程分支
git checkout -b dev
// 创建并切到 dev 分支
git checkout dev
// 切换到 dev 分支
需要将 dev 分支合并到 master,首先切到 master 分支
git checkout master
// 切换到 master 分支
git merge --no-ff dev
// 合并 dev 分支代码
git branch -D dev
// 删除本地的某个分支,dev 为要删除的分支名
git branch -r -d origin/dev
// 删除远程的分支,注意这个只是删除本地的索引,而不是真正删除远程分支的内容
git push origin :dev
// 真正删除远程分支上的内容,冒号前有空格,相当于把一个空分支 push 到远程分支上,等于删除该分支
git fetch origin --prune
// 当远程分支发生改变后,同步这些改变到本地的命令
3、tag
git tag
// 显示所有标签
git tag -a v3.4.4 -m 'version 3.4.4 by haoyh'
// 创建标签,-a 后跟 tag 名;-m 跟描述
git push origin --tags
// 提交本地创建的所有 tag
三、其他不是很常见的使用
1、将 Git 分支创建为独立新项目
场景:需要将正在开发的一个项目,在其 dev 分支的基础上创建一个新的独立项目 a. 切到 dev 分支
# git checkout dev
b. 复制项目为新项目
# cd ../ // 到工程所在目录
# cp -r prj/ newprj/
c. 切到新项目目录
# cd newprj
d. 删除本地的分支
# git branch -D master // 其他无用分支也删除
e. 将当前分支命名为 master 分支
# git branch -m master
f. 修改仓库地址
# git remote set-url origin url // url 为新项目实际地址
g. 修改对应远程分支
# vim .git/config
// 原内容
[branch "master"]
remote = origin
merge = refs/heads/dev
// 修改之后
[branch "master"]
remote = origin
merge = refs/heads/master
h. 提交修改
git push origin master:master
转载自:https://juejin.cn/post/7073769167643492383