首先在项目中所在文件,点击右键选择git bash here,进入git命令行窗口。
在命令行输入
git init
按回车,当前文件夹就会出现.git文件,说明成功加入版本控制了
然后对项目进行添加修改删除等,就需要两个指令来确定新的版本控制
git add .
该指令把所有文件都加入git的缓冲区
git commmit -m"当前版本说明"
该指令把缓存区的文件提交给仓库,并对当前版本号进行了说明
我们也可以通过git status
来查看缓存区以及仓库文件的修改状态
之后我们可以通过
git log
来查看我们的历史提交信息,具体还有三个详细指令,如
用来显示所有分支
git log --all
把提交信息显示位一行
git log --pretty =oneline
使得输出的commited变得更简短
git log --abbrev commit
以图的方式显示
git log --graph
关于如何恢复某个版本,我们可以用
git reset --hard 版本号
如何查看已经删除的记录
git reflog
当我们想要恢复错删除的版本,可以查找已删除记录的版本号,然后用恢复指令进行恢复即可
添加分支
git branch 分支名
查看分支
git branch
切换分支
git checkout 分支名
创建分支并同时切换分支
git checkout -b 分支名
合并分支,先切换要合并的分支,再输入指令中的分支名,把这两分支合并
git merge 分支名称
删除分支
git branch -d 分支名
当两者合并时有冲突时,git会提醒哪个文件有冲突,并在该文件中显示,哪两个分支的各自的值是多少,这时候需要我们确定取哪个值,把除了要的值的其他提示删除,重新提交即可
这是因为远程仓库与本地仓库不一致,我们需要把两者同步一致,把两者合并。
git pull --rebase origin master
远程仓库操作
##########################1-将本地仓库推送到远程仓库
# 完成4.1、4.2、4.3、4.4的操作
略
#首先我们执行命令git remote -v查看当前仓库首先我们执行命令
git remote -v查看当前仓库
#那么我们现在要移除远程仓库,执行 git remote rm 分支别名
git remote rm origin
#查看远程仓库名字
git remote
# [git_test01]添加远程仓库
git remote add origin 远程仓库地址(url)
# [git_test01]将master分支推送到远程仓库,并与远程仓库的master分支绑定关联关系
git push --set-upstream origin master
###########################2-将远程仓库克隆到本地
# 将远程仓库克隆到本地git_test02目录下
git clone 仓库地址
# [git_test02]以精简的方式显示提交记录
git-log
###########################3-将本地修改推送到远程仓库
# [git_test01]创建文件file03.txt
略
# [git_test01]将修改加入暂存区并提交到仓库,提交记录内容为:add file03
git add .
git commit -m 'add file03'
# [git_test01]将master分支的修改推送到远程仓库
git push origin master
###########################4-将远程仓库的修改更新到本地
# [git_test02]将远程仓库修改再拉取到本地
git pull
#如果不行提交一些文件,在gitignore中,添加这文件的名称,但不一定生效,记得要先清除本地缓存,然后在提交,push。用如下命令:
git rm -r --cached .
git add .
git commit -m"xxx"
git push
但是这个有个缺点,例如java项目原本远程仓库有配置文件,但是开发本地需要修改了配置文件,但是又不想提交到远程仓库,于是就加入gitignore文件中,这样将代码push到远程仓库中会把远程仓库的配置文件也删除掉,总结就是gitignore文件是用来忽略文件不加入版本控制的意思。
但如果不想改变远程仓库的配置文件,可以用以下命令
1、git update-index --assume-unchanged 文 件 路 径 让 g i t 不 再 跟 踪 {文件路径}让git不再跟踪 文件路径让git不再跟踪{文件路径}的更新了;当项目开发完成后又想将该配置文件的修改更新提交至远程仓库,就解除不跟踪设置,使用命令:git update-index --no-assume-unchanged 文 件 路 径 , 即 可 使 g i t 再 次 跟 踪 {文件路径},即可使git再次跟踪 文件路径,即可使git再次跟踪{文件路径}。如下
git update-index --assume-unchanged "/root/tem/java/web/application-dev.yml" //git关闭跟踪文件修改提交
git update-index --no-assume-unchanged "/root/tem/java/web/application-dev.yml"//git打开跟踪文件修改提交
2、所有如果即想要远程仓库对应文件的更新,又不想要将自己本地的修改提交,这可以使用命令:git update-index --skip-worktree。skip-worktree:不会关闭本地文件对远程仓库的跟踪,只是告诉Git不要跟踪对本地文件的更改,pull时会拉取最新的更新,但要更新则需要no-skip-worktree再pull拉取合并最新更新。
git update-index --skip-worktree "/app/tep/ap.txt"//关闭GIT跟踪本地文件修改
git update-index --no-skip-worktree "/app/tep/ap.txt"//打开GIT跟踪本地文件修改