一、git结构
1. 中央仓库
2. 本地仓库
二、常用操作
1. unchecked
2. add,添加到暂存区
3. commit, 从暂存区到本地仓库
4. push,从本地仓库到远程仓库, commit和push的区别
5. gc,打包清理
git生成ssh keys不用每次都输入用户名,必须用ssh clone
个人文件夹下有gitconfig
git clone http:...
git add . 添加当前目录下文件到git
git add . --all 递归添加本目录下所有文件到git
git commit -m "commnet"
git pull 拉取所有分支,对应到相应分支
git branch 显示本地所有的分支
git branch -a 显示本地和远程所有branch
git fetch 拉取所有的分支,只有这样才能显示所有的分支, 比如看不到远程新加的分支,就需要先fetch
git rm --cache */*.iml 删除文件,但是保留本地文件
git status
git tag
git checkout 2.5 切换到tag2.5,因为master分支总是会变化,不稳定
回退代码 reset vs revert
1. revert
a. 已经commit但还未push
git revert HEAD
b. 已经push
git revert HEAD~1
2. reset
git回退已经commit但是还未push的代码
git reset HEAD^ 会退到上个本地版本
git强制回滚已经push的代码, 加上hard
git reset --hard HEAD^ 会退到上个本地版本,此时pull代码,远程分支会有冲入,需要merge,或者强制提交
git reset --hard HEAD~3 会退到上3个版本
git reset --hard 1153f149952a87f6aa8846a71f191c1f54afadef(commit id)
强制回滚后提交
git push origin master --force,把远程强制更新成跟本地一样
3. 区别
git revert是用一次新的commit来回滚之前的commit,向前进
git reset是直接删除指定的commit,向后退
创建分支
git branch develop 添加develop分支
git push origin develop 提交到develop分支,建立本地分支与远程仓库的联系
git checkout develop 切换到develop分支
git pull origin develop 只拉取develop分支,如果在develop分支,就拉取代码;如果在其他分支,就拉取并merge代码
git push origin develop 提交代码到develop分支
合并分支,把develop分支merge到master
git checkout master
git merge develop
删除分支
git branch -d develop
git push origin :develop
删除远程分支
git branch -r 查看
git branch -r -d origin/develop
git push origin :develop
更新远程已经删除,但未同步到本地的分支
git remote prune origin
更新远程分支列表
git remote update origin --prune
新建一个分支,拉取另一个分支的某个版本号之前的代码
git log 查看提交版本记录
git checkout abc
git cherry-pick 12345 把某个提交版本号拉取过来
三、Git vs SVN
1. SVN每个版本只保存了diff
2. Git每个版本保存了整个文件,每个版本相当于一个文件夹
参考:
https://blog.csdn.net/yxlshk/article/details/79944535
所有评论(0)