VS 配置

  1. 无代码打开vs
  2. 打开视图 -> 团队资源管理器, 或 Ctrl+Shift+G
  3. 新建仓库文件夹 -> 双击 -> 新建解决方案 -> 编码
  4. 设置同步, 可选推送到远程存储库
  5. 打开视图 -> 其他窗口 -> 程序包管理器控制台, 或 Ctrl+ˋ, 即可输入git命令
  6. 执行 $env:GIT_REDIRECT_STDERR = '2>&1'. 不然在powershell中使用git checkout命令会报错.
  7. 一般流程为: 选定分支 -> (拉取) -> 添加文件 -> 提交 -> 推送

常用git命令

更新代码相关

# 从远程 master 分支获取代码(默认远程仓库为 origin)
git pull origin master

# 添加文件
git add file.abc

# 添加当前目录下所有文件
git add .

# 移除文件
git remove file.abc

# 提交代码(一定要加注释, 避免进入文本编辑器)
git commit -m "commit message"

# 推送代码到远程仓库的 master 分支
git push origin master

# 推送代码到远程仓库的其他分支(不存在则创建分支)
git push origin <branchname>

分支相关

# 列出本地所有分支
git branch

# 列出远程所有分支
git branch -r
git branch --remote

# 列出本地和远程的所有分支
git branch -a

# 新建分支
git branch <branchname>

# 切换分支
git checkout <branchname>

# 新建分支并切换(保留以前的log记录)
git checkout -b <branchname>

# 新建分支并切换(全新的log记录)
git checkout --orphan <branchname>

# 删除本地分支(存在没有提交或合并地修改时会失败)
git branch -d <branchname>

# 强制删除本地分支(强制删除, 如 master)
git branch -D <branchname>

# 删除远程分支(需推送服务器)
git branch -d -r origin/<branchname>
git push origin :<branchname>

# 重命名本地分支
git branch -m <newname>

对比相关

git diff <filename>
git diff <branch1> <branch2>

VS可视化: 转到文件夹视图, 选定查看的文件, 右键"与未修改的版本比较"

合并相关

# 合并某分支到当前分支
git merge <branchname>

日志相关

# 显示日志
git log --oneline

恢复删除的分支

注意: 每次删除分支前, 一定要提交后再删除. 最好使用git branch -d <branchname>, 而不是强制删除-D, 不然恢复了也找不回改动文件.

git checkout -b dev
git add .
git commit -m "initial files"
git checkout master
git merge dev
git branch -d dev

dev分支已删除, 执行git reflog查看历史记录

07748ba HEAD@{0}: merge dev: Fast-forward
bfc22f0 HEAD@{1}: checkout: moving from dev to master
07748ba HEAD@{2}: commit: initial files
bfc22f0 HEAD@{3}: checkout: moving from master to dev
bfc22f0 HEAD@{4}: commit: 娣诲姞椤圭洰鏂囦欢銆?a0527b1 HEAD@{5}: commit (initial): 娣诲姞 .gitignore 鍜?.gitattributes銆?

找到删除dev分支前的操作, 即最后一次与dev分支相关的操作: 07748ba HEAD@{0}
进行分支恢复:

git branch dev-new 07748ba

再次查看分支, 即可看到已经恢复的dev-new, 改名字是为了防止再次覆盖出错.

git branch
> * dev-new
>   master