前言:Git作为目前世界上最先进的分布式版本控制系统,当然有必要好好学习一下。
以下所有操作均在Windows环境下。虽然很想尝试玩一玩Linux,可惜现有条件不允许。
学习查阅了廖雪峰老师的博客,感谢老师。
1 安装Git
从https://git-for-windows.github.io/下载Windows专用安装Git。
安装完后打开Git Bash命令行输入:
git config --global user.name "adenW"
git config --global user.email "1244193130@qq.com"
这样一来我在电脑上的Git操作都是adensW进行操作了。
2 本地使用Git
到想要创建Git版本库的文件夹下右键点击Git Bash Here 就会弹出cmd窗口默认位置在该文件夹下了。
创建Git本地库输入:
git init
添加文件到Git库
git add readme.md
提交文件到Git库
git commit -m "wrote a readme file"
版本回退
git reset --hard HEAD^
查看log
git log
- 删除文件
直接删除文件,或执行 rm test.txt
这样都只是删除文件管理器里的文件。Git 版本库里还没有删除。
如果是错删了,可以恢复
git checkout -- test.txt
恢复到Git库里的版本。
若真要从版本库里删除:
git rm test.txt
再提交
git commit -m "remove test.txt"
这样就都删除了。
3 托管到GitHub
联网操作才是最好的。
注册GitHub,添加GitHub SSH连接认证 一顿操作参考廖老师博客地址
在GitHub上创建Repository。使用New repository,写上项目名称等等。
本地上传到GitHub:
关联我的GitHub库
git remote add origin git@github.com:adensW/DailyAssignment.git
首次上传项目:
git push -u origin master
以后同步项目:
git pull origin master
克隆项目
git clone git@github.com:adensW/DailyAssignment.git
这里遇到一个问题:因为以前测试的时候有过上传测试,所以origin这个本地名被关联了其他的GitHub库。出现了错误:fatal: remote origin already exists.
解决办法:
使用其他的命名。
git remote add DailyAssignmentOrigin git@github.com:adensW/DailyAssignment.git
更改origin 的关联GitHub库
git remote set-url origin git@github.com:adensW/DailyAssignment.git
因为一开始使用了方法1. 但是 origin 的关联本来就是测试没有用处所以可以删除了,重新关联到这次的 GitHub 库
git remote rm origin
git remote add origin git@github.com:username/myapp.git
4 创建分支合并分支
创建开发分支
git checkout -b dev
( -b 参数表示创建并切换)
查看当前分支
git branch
切换回 master 分支合并分支
git checkout master
合并分支
git merge dev
同步到 GitHub
git push origin master
5 vscode 中使用Git
- 可以 ctrl + j 呼出终端,使用git 命令(不用开头写 $ 符号)
- 在左下角可以切换 branch ,Ctrl + Shift + G 呼出源代码管理界面,点击 … 按钮 同步(合并分支) ,提交(提交文件到Git库),推送(同步到 GitHub)。
6 从Fork的项目更新当前版本
- 设置upstream
git remote add upstream [fork_url]
2.拉取upstream的最新代码
git fetch upstream
3.查看upstream提交的历史记录
git log --no-merges master..upstream/master
4.合并到本地origin
git merge upstream/master
注意:合并需要本地版本库不能有未提交的内容
8.修改gitignore文件不生效问题
修改.gitignore文件后使用各种可视化工具,仍然将需要忽略的文件包含在版本库中.
检查gitignore字段是否正确,由于可以包含正则匹配可能错误.
一切都正确的话就需要清除所有版本库cache,重新进行提交
git rm -r --cached . #清除缓存
git add .
git commit -m "update .gitignore"
git push
```'