一、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

 

转载于:https://www.cnblogs.com/june0816/p/6270238.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐