GIT命令,三步让项目被版本控制起来:
git init 创建git仓库
git add . 或 文件名(a.txt b.txt) 加入暂存区
git commit -m "提交到本地仓库的备注" 将缓存区内容添加到仓库中
GIT版本回退:回退commit过的版本
git reset HEAD 以取消之前 git add 添加 的。git reset HEAD hello.php00、0
gitk可以打开可视化界面提交记录
git reflog用来记录你的每一次命令
git log --graph 带分支合并图
"git checkout -- file" 放弃工作区修改的文件
"git reset HEAD <file>" 可以把暂存区的修改撤销掉(unstage),重新放回工作区
git reset --hard head^ 回退上个版本 tip:(head当前节点 head^当前节点的父节点)
git reset --hard <hash> 回退指定版本(git log -p查看提交的节点)( hash是节点名 git log查看)
git checkout <hash> <file> 指定还原已经提交过的文件
GIT版本控制下的项目文件的状态:
tracked 跟踪
untracked 未跟踪
ignore 忽略
git status查看未提交的文件; git status -s 简短的结果输出
GIT上传:
git remote add origin 远程的地址
第一次上传:git push -u orgin master
后续上传: git push
GIT下载地址:
git clone 远程的地址
删除url:git remote rm origin
GIT分支与合并:
gir branch 查看分支列表
git branch dev 创建dev分支
切换分支:git checkout <name>或者git switch <name>
创建+切换分支:git checkout -b <name>或者git switch -c <name>
git pull origin dev拉代码
git log -p + 文件名 (可查看该文件以前每一次push的修改内容)
git add .
git checkout master
git merge dev 要合并过来的那个分支名(当前切换成主分支master)
git merge --abort 撤销合并
git push 上传到云端
GIT查看分支:
git branch 查看本地所有分支、-r查看远程所有分支、-a查看本地和远程所有分支;
删除本地分支:
git branch -d dev 用大写 -D强制删除
删除远程分支:
git push origin --delete dev
git rm
git rm <file> 删除文件 如要要从git上删,移除后还要再提交
git rm -f <file> 删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f
git rm --cached <file> 仅是从跟踪清单中删除
##### git保存和恢复工作进度(git stash)
命令:git stash
保存当前工作进度,将工作区和暂存区恢复到修改之前。
命令:git stash save message
作用同上,message为此次进度保存的说明。
命令:git stash list
显示保存的工作进度列表,编号越小代表保存进度的时间越近。
命令:git stash pop stash@{num}
恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
git fetch和git pull的区别
1. git fetch
git fetch相当于是从远程获取最新到本地,不会自动merge,如下指令:
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中
git log -p master ..origin/master //比较本地的master分支和origin/master分支的差别
git merge origin/master //进行合并
也可以用以下指令:
git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支
git diff tmp //将当前分支和tmp进行对比
git merge tmp //合并tmp分支到当前分支
2. git pull
git pull 相当于是从远程获取最新版本并merge到本地
git pull origin master //将远程仓库的master分支下载到本地当前branch中并进行merge
在实际使用中,git fetch更安全一些,效果相同时git pull将更为快捷。
最新评论