GIT

107 阅读3分钟

git的常规指令与操作

  • 记录下来,为了让自己印象深刻点,当然还是多用比较实在

配置用户名和邮箱

git config --global user.name "xxx"
git config --global user.email "xxx"

初始化

git init

三个区域

  • 工作区:
    • 指的就是git管理后的文件,粗略的说就是项目文件夹
  • 暂存区:
    • 执行 git add . 之后,文件从工作区添加到了暂存区。暂存区保存了下次将要提交的文件列表信息
  • 本地仓库:
    • 执行 git commit -m '提交说明' 之后,代码会被提交到仓库区。仓库区是 Git 中最重要的部分,代码只有提交到仓库,才会形成一次历史记录,即才会形成一个版本。

将文件添加到暂存区

# 添加指定文件到暂存区
git add 文件名

# 以空格隔开可以一次 add 多个文件
git add [file1] [file2] ...

# 添加指定目录到暂存区,包括子目录
git add [dir] [file] [dir] [file] [file] ...

# 添加当前目录的所有文件到暂存区,包括子目录
git add .

提交文件到仓库

# 提交暂存区到仓库区
$ git commit -m [message]

# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]

# 提交工作区和暂存区自上次commit之后的变化,直接到仓库区。
# 新文件,从未被Git管理过,是不能直接提交到仓库区的
$ git commit -a -m "提交日志"

撤销操作

# 恢复暂存区的指定文件到工作区
git checkout [file]

# 恢复暂存区的所有文件到工作区
git checkout .

# 恢复某个commit的指定文件到暂存区和工作区
git checkout [commit版本号] [file]

# 重置暂存区的指定文件,与上一次 commit 保持一致,但工作区不变
git reset [file]

# 重置暂存区与工作区,与上一次commit保持一致。该命令后不能加文件或文件夹
git reset --hard

回退历史与查看版本

# 首先使用git log 或 git log --oneline 查看提交记录,获取版本号。

# 回退全部文件到历史版本
git checkout 版本号

# 回退指定文件到历史的某个版本
git checkout 版本号 文件名 [文件名.....]

生成SSH密钥

ssh-keygen -t rsa -C "你的邮箱地址"
# 执行完这个命令之后,后面有一些询问,我们直接一路回车即可

Windows: C:\Users\用户名.ssh

mac: 你的用户名那个文件夹中。 按shift+Commend+. 可以显示隐藏文件,然后就可以看到 .ssh文件夹了

将本地仓库中的代码推送到远程仓库

  • 创建一个空的远程仓库
  • 复制 ssh 地址
  • 终端中执行 git remote add origin ssh地址 ,表示添加远程仓库地址到本地
  • 首次推送 git push -u origin master ,刷新一下远程仓库,看看是否推送成功了

用远程仓库如果有东西,就要先拉取

  • 在首次推送前,需要先拉取远程仓库的代码,每次推送也要拉取,如果要冲突,要解决冲突
  • git pull origin master --rebase
  • 后续继续开发

分支

切换分支前,必须把当前分支的代码全部提交到本地仓库。

# 创建分支
git branch 分支名

# 切换分支到dev
git checkout 分支名

# 也可以创建并直接切换分支
git checkout -b 分支名

# 查看所有分支(本地分支)
git branch

# 查看所有分支(包括远程分支)
git branch -a

# 删除分支(需要先切换到其他分支,然后在执行删除)
git branch -d 分支名

# 创建并直接切换分支
git checkout -b dev

合并

  • 分为 快进模式合并 和 合并模式合并
  • 快进模式就是一个分支包含另一个分支的最新版本可以直接覆盖
  • 合并模式就是各自分支有单独的提交,合并可能会产生冲突
# 切换到A分支
git checkout A

# 把B分支的代码合并到A分支
git merge B

如果有冲突 手动打开有冲突的文件,解决冲突,保存文件。(手动解决)

再次添加(add操作)提交(commit),即可完成合并。