git 基本操作
#git 基本用法
创建新仓库
- 创建文件夹
mkdir <dirname>
- 创建文件
touch <filename>
- 初始化仓库
git init
检出仓库
- 克隆本地仓库
git clone /path/to/repository
- 克隆远端服务器仓库
git clone username@host:/path/to/repository
工作流
本地仓库由 git 维护的三棵“树”组成。第一个是你的 工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。
添加和提交
- 添加到暂存区
git add <filename> 或者 git add *
- 提交代码
git commit -m "提交信息"
推送至远程仓
- 提交到远端仓库
git push origin master
- 如果没有克隆现有仓库,并打算将本地仓库连接到某个远程服务器,可以使用如下命令添加:
git remote add origin <server>
分支
master
是默认分支,开发时一般会创建一个分支,开发完成后合并到主分支- 创建分支
git checkout -b <branchname>
- 切换回主分支
git checkout master
- 删除分支
git branch -d <branchname>
- 除非你将分支推送到远端仓库,不然该分支就是不为他人所见的
git push origin <branch>
更新与合并
- 更新你的本地仓库
git pull
在本地工作目录中获取(fetch)并合并(merge)远端改动。 - 合并其他分支到当前分支
git merge <branch>
可能出现冲突(conflicts),修改冲突后git add <filename>
在合并改动之前可以使用git diff <source_branch> <target_branch>
预览差异。
log
- 输出提交的历史记录
git log
- 仅输出某一人的提交记录
git log --author=sialia
- 输出压缩后只占一行的提交记录
git log --pretty=oneline
- 查看那些文件改变了
git log --name-status
- 获取其他参数信息
git log --help
标签
- 为软件发布创建标签
git tag 1.0.0 'commit ID'
- 获取commit ID 使用
git log
替换本地改动
- 替换掉本地改动(操作失误)
git checkout -- <filename>
会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。 - 假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
# 设置提交时的用户信息
git config --global user.name "用户名"
git config --global user.email "邮箱"
# 禁用git自动LF转CRLF
git config --global core.autocrlf false
# 生成密钥(默认文件名id_rsa)
# -t 密钥类型
# -C 注释
ssh-keygen -t rsa -C "邮箱"
在vscode集成的powerahell 中安装 posh-git 插件
VSCode 默认使用PowerShell,启动powershell,分别执行下面3个命令(提示都输入Yes)
# 1.设置权限
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm
# 2.使用PowerShellGet安装
PowerShellGet\Install-Module posh-git -Scope CurrentUser
# 3.全局导入posh-git
Add-PoshGitToProfile -AllHosts