- 1. 安装
- 2. 配置
- 3. 创建仓库
- 4. 工作流与基本 *** 作
- 4.1 必要基本 *** 作(工作中必用)
- 1. 查看工作区的文件状态`git status`
- 2. 添加工作区文件到暂存区 `git add`
- 3. 创建版本`git commit`
- 4. 拉代码`git pull`
- 5. 推代码`git push`
- 4.2 其他基本 *** 作
- 6. 查看提交日志`git log`
- 7. 修复提交`git commit --amend`
- 8. 删除`git rm`
- 9. 撤销重置`git reset`
- 10. 比较`git diff`
- 5. 分支
- 5.1. 查看分支
- 5.2. 创建分支
- 5.3. 切换分支
- 5.4. 分支合并
- 5.5. 删除分支
- 6. 标签
- 6.1 创建标签
- 6.2 查看所有tag
- 6.3 删除标签
- 6.4 将标签推送至远程
- 6.5 删除远程标签
- 6.6 查看 tag 详细信息
- 7. git远程仓库,配置SSH
- 7.1 首先查看本地有没有密钥
- (1)打开终端,输入命令
- (2)如果有密钥,输入以下命令查看公钥
- (3) 如果没有密钥,输入以下命令生成
- (4)在github中的设置中添加SSH公钥
- (5)将本地仓库和远程仓库进行关联
- (6)查看远程仓库
- 7.2 拉代码
- 7.3 推到远程仓库
https://git-scm.com
2. 配置安装完git
之后的第一步 *** 作就是进行配置(设置你的用户名称以及邮箱)。每一次git
的提交都会使用这些信息,不可更改。
git config user.name "你的姓名"
git config user.email "你的邮箱"
通过--global
可以设置全局配置信息。
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
检查配置
//打印所有config
git config --list
//打印指定config
git config user.name
git config user.email
3. 创建仓库
进入到你的项目目录下,输入以下命令,初始化一个git
仓库。
git init
这个命令会创建一个.git
的子目录。这里含有初始化git仓库的所有必须文件,且这个子目录是隐藏的。非常重要,不可轻易改动。
当一个项目被git
初始化之后,仅仅表示我们希望由git
来管理这个项目,但是这个项目中已经存在的文件或着新增的文件都还没有进入版本控制管理的,他们都是未追踪的状态(Untracked)。
git status
git status
2. 添加工作区文件到暂存区 git add
//添加一个文件
git add 1.txt
//添加多个文件
git add 2.txt 3.txt
//添加整个目录
git add ./one
//添加多个目录
git add ./two ./three
//添加所有文件
git add .
3. 创建版本git commit
将暂存区的改动提交给本地git
仓库。每次提交都会产生一个40
位的哈希值,作为这次提交的id
。
git commit -m '给这次提交取一个备注名字'
4. 拉代码git pull
命令用于从远程获取代码并合并本地的版本。git pull
其实就是 git fetch
和 git merge
FETCH_HEAD 的简写。
//将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。
git pull origin master:brantest
//如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin master
5. 推代码git push
用于从将本地的分支版本上传到远程并合并。
//git push 命用于从将本地的分支版本上传到远程并合并。
git push origin master
如果想省略origin master
,查看7.3
,将本地分支与远程同名分支相关联。
git log
//完整格式
git log
//单行日志 输出id+备注名
git log --oneline
7. 修复提交git commit --amend
修复(追加)提交,在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中。
git commit --amend -m '备注'
8. 删除git rm
//从git仓库与工作区中删除指定文件(彻底删除)
git rm 文件
//只删除git仓库中的文件(不想这个文件被追踪了)untracked
git rm --cached 文件
//rm以后,需要进行一次commit,否则rm将保留在暂存区中
git commit -m '删除了以一些文件'
9. 撤销重置git reset
从暂存区中撤销到工作区
//从暂存区中撤销一个指定文件
git reset HEAD 文件
//从暂存区中撤销所有文件
git reset HEAD .
回退版本
//回退到commitID版本
git reset --hard commitID(之前commit生成的那个40位的哈希值)
//回去了反悔了,想要最新的代码git pull即可
10. 比较git diff
//比较工作区和暂存区
git diff 文件
//比较暂存区和仓库
git diff --cached [commitID] 文件
//比较工作区和仓库
git diff commitID filename
//比较仓库不同版本
git diff commitID1 commitID2
5. 分支
5.1. 查看分支
git branch
5.2. 创建分支
git branch 分支名
5.3. 切换分支
git checkout 分支名
//也可以使用git checkout -b 来新建分支(创建并到新创建的分支下)
git checkout -b 分支名
5.4. 分支合并
//B分支合并到A分支,需要先切换到A分支再进行合并
git merge B(被合并分支)
//查看已经合并的分支
git branch --merged
//查看未合并的分支
git branch --no-merged
5.5. 删除分支
//如果分支为未合并状态,则不允许删除
git branch -d 分支名称
//强制删除
git branch -D 分支名称
6. 标签
有时候,我们希望给某一个特定提交打上一些标签。标签可以看成某个版本的别名,因为git
的版本号是用40位哈希值表示的,为了便于管理,git
可以给版本打个标签,相当于取个别名。
//给当前最新提交的commit打上标签
git tag v1.0.0
//给之前的commit提交打标签,在此之前先找到commitID(40位哈希值)
git tag v0.5.0 CommitID
//还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字(基于最新的commit提交)
git tag -a v1.0.0 -m '第一版'
//为历史commit创建带有说明的标签
git tag -a v1.0.0 -m '第一版' commitID
6.2 查看所有tag
git tag
6.3 删除标签
git tag -d 标签名
创建的标签都只存储在本地,不会自动推送到远程。
6.4 将标签推送至远程// 推送单个Tag
git push origin 标签名
// 推送所有本地Tag
git push origin --tags
6.5 删除远程标签
推送到远程的标签若想删除需要先删除本地的标签,再重新push到远程的代码仓库。。
//删除本地标签
git tag -d 标签名
//删除远程标签
git push origin :refs/tags/标签名
6.6 查看 tag 详细信息
git show 标签名
7. git远程仓库,配置SSH
由于你的本地git
仓库和远程git
仓库之间的传输是通过SSH加密的,所以我们需要配置SSH。SSH key的配置不是必须的,不配置的话就只能用HTTPS协议,这样每次提交都需要输入用户名和密码。配置后则不需要。配置SSH密钥的原理很简单,采用非对称加密方式生成公钥和私钥,公钥告诉github
,私钥留在自己的电脑上(不可泄漏),当我们向github
提交数据的时候,github
会用我们给他的公钥加密一段消息返回给我们电脑,如果我们能用私钥解密成功,说明是合法的用户。
如何配置?
7.1 首先查看本地有没有密钥 (1)打开终端,输入命令cd ~/.ssh
ls
如果输出有以下文件,则说明本地含有密钥,否则没有。
(2)如果有密钥,输入以下命令查看公钥输出即为公钥。
cat ~/.ssh/id_rsa.pub
(3) 如果没有密钥,输入以下命令生成
$ ssh-keygen -t rsa -C "邮箱地址"
邮箱地址是你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。
生成之后可以进行(2)查看
git remote add origin 远程仓库地址
这条命令git自动把远程仓库的名字设置为origin
。
git remote
7.2 拉代码
//将github数据拉取到本地当前分支
git pull
//拉取到本地master分支
git pull origin master
7.3 推到远程仓库
//将本地master分支推送到远程origin的master分支上,-u用于第一次推送,表示两个master分支关联
git push -u origin master
-u
参数可以在推送的同时,将origin
仓库的master
分支设置为本地仓库当前分支的上游。添加了这个参数,将来运行git pull
命令拉代码的时候,本地仓库的这个分支就可以直接从origin
的master
分之获取内容。这个参数只在第一次push
的时候加上,以后直接git push
即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)