git命令与操作
Posted newbase
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git命令与操作相关的知识,希望对你有一定的参考价值。
Git基础
Git使用前的配置
配置用户姓名和邮箱(多人协作时很有用)
配置姓名
$ git config --global user.name xxxx
配置邮箱
$ git config --global user.email xxxx@xxxx.com
查看配置是否成功
$ git config --list
注意:
更改配置-->重复上述命令
或直接修改
C:Users用户.gitconfig
路径不统一
提交文件步骤
git init
初始化git仓库git status
查看文件状态git add
文件列表 追踪文件git commit -m 提交信息
向仓库提交代码git log
查看提交记录
git log --pretty=oneline
查看简单的提交记录
撤销修改
用暂存区中的文件覆盖工作目录中的文件:
git checkout
把文件在工作区做的修改全部撤销
git checkout -- 文件名
撤销分为两种情况:
1.readme.txt自动修改后,还没有放到暂存区,使用撤销修改就回到和版本库一模一样的状态。
2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
将文件从暂存区中删除:
git rm --cached 文件名
将git仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:
git reset --hard commitID
修改git commit信息中的author
使用 --amend 修改 author:
git commit --amend --author=‘xxx <xxxx@xxx.xxx>’
输入
git rebase --continue
结束修改
回溯到上一个版本
`` git reset --hard HEAD^ `` 回溯到上一个版本
`` git reset --hard HEAD^^ `` 回溯到上上个版本
`` git reset --hard HEAD~100 `` 回溯到100个版本之前
查看文件内容
cat 文件名称
Git进阶
分支
生成副本,避免影响开发主线
分支细分
- 主分支(master):第一次向git仓库提交更新记录时自动产生的一个分支。
- 开发分支(develop):作为开发的分支,基于master分支创建。
- 功能分支(feature):作为开发具体功能的分支基于开发分支创建。
分支命令
git branch
查看分支git branch 分支名称
创建分支git checkout 分支名称
切换分支git checkout -b 分支名称
创建并切换到该分支(即前两项合并)git merge 来源分支
合并分支git branch -d 分支名称
删除分支(分支不能处于被操作的状态)(-D 大写强制删除)
注意:
? 开发分支文件后要commit后再切换主分支,否则分支文件会出现在主分支里面。
暂时保存更改
git中可以不提交更改,只提取分支上所有改动并储存,让开发人员得到一个干净的副本,临时转向其它工作。复制到“剪切板”,可以“粘贴“到其它分支。
场景:
- 储存临时改动:
git stash
- 恢复临时改动:
git stash pop
Github
注册Github账号
多人协作开发流程
- A在自己的计算机中创建本地仓库
- A在GitHub中创建远程仓库
- A将本地仓库推送到远程仓库
git push
- B克隆远程仓库到本地进行开发
git clone
- B将本地仓库开发内容推送到远程仓库
git push
- A将远程仓库中的最新内容拉去本地
git pull
创建仓库
推送到远程仓库
git push **远程仓库地址** 分支名称
git push 远程仓库地址别名 分支名称
git push -u 远程仓库地址别名 分支名称
-u
记住推送地址和分支,下次只需要输入git push
git remote add 远程仓库地址别名 远程仓库地址
第一次提交需要用户名和密码,电脑会记住密码在凭据管理器,第二次就不用了。
拉取仓库
- 克隆远程仓库到本地:
git pull 仓库地址
克隆仓库
- 克隆远程仓库到本地:
git clone 仓库地址
拉取远程仓库中最新版本
- 拉取远程仓库最新版本到本地:
git pull 远程仓库地址 分支名称
解决冲突
多人开发同一个项目时,如果两个人修改了同一个文件同一个地方
git pull
- 手动解决冲突
git push
跨团队协作(github)
fork
到自己的远程仓库clone
到本地进行修改push
到远程仓库pull request
发送给原作者- 原作者查看
commit
审核 - 原作者
merge pull request
SSH免密登录(推荐)(待完善)
生成密钥:
ssh-keygen
密匙储存目录:
C:User用户\.ssh
公钥名称:
id_rsa.pub
私钥名称:
id_rsa
Github添加公钥
复制SSH地址:
设置ssh别名:
$ git remote add origin_ssh SSH地址
远程推送:
$ git push origin_ssh master
Git忽略清单
- 将不需要的文件名字添加到此文件中,执行git 命令时就会忽略这些文件
touch .gitignore
规则作用
/mtk 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/xiaojian.py 过滤某个具体文件
!xiaojian.py 不过滤某个具体文件
注意:如果你创建.gitignore文件之前就push了某一文件,那么即使你在.gitignore文件中写入过滤该文件的规则,该规则也不会起作用,git仍然会对该文件进行版本管理。
配置语法
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录。
注意: git 对于 .gitignore配置文件是按行从上到下进行规则匹配的
为仓库添加说明
在仓库根目录添加readme.md
文件即可
常用的图形管理工具(GUI)
Github for Desktop :Github官方出品
Sourse tree :老牌GUI
TortoiseGit : 即海龟git
以上是关于git命令与操作的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段
GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段