git init / git init --bare <仓库名> git add README.md git commit -m "first commit" git remote add origin https://github.com/HealerJean123/fas.git git push origin master
当咱们初次建立项目点的时候,是没有分支的,咱们须要先建立一个master分支出来,而且push到git上,这样才是真正建立了一个分支,不然,若是直接建立的两个不一样的分支,将会没有同一个祖先,不可以进行合并html
git checkout -b zhangyj
git branch
git checkout zhangyj
git status git add –A git commit -m"add index.html"
git pull origin develop
develop为远程分支的名字
git clone -b develop http://git.github.com/healerjean/test.git
不能够跨分支push 代码,好比如今是zhangyj分支,直接push develop是不会起做用的,咱们须要网页发起请求(当咱们没有权限操做master的时候),或者切换到其余分支,而后进行merge操做,以下git
git push origin zhangyj
git –f push origin
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pLQFMFbO-1572840941459)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572835086522.png)]github
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bXg4A3hl-1572840941460)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572835099908.png)]web
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-isDahq4a-1572840941461)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572835104945.png)]shell
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WTQeLjLa-1572840941461)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572835158526.png)]微信
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ed9Wyc0p-1572840941462)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572835164711.png)]app
git merge develop 或者 git merge develop zhangyj
marge 特色:自动建立一个新的commit,当合并时遇到冲突,修改后从新commit便可 优势:将commit的实际状况进行记录,便于之后查看 缺点:因为每次merge会自动产生一个merge commit,因此在使用一些git 的GUI tools,若是commit频繁,这样会使得feature分支很杂乱,若是系统功能比较简单,这时能够考虑使用rebase来进行合并处理。 rebase 特色:将commit历史进行合并 优势:项目历史比较简单,少了merge commit 缺点:当发生冲突时不容易定位问题,由于re-write了history https://blog.csdn.net/liuxiaoheng1992/article/details/79108233 https://blog.csdn.net/happyjume/article/details/87450696
git branch -D zhangzyj
git push origin –delete zhangzyj
git reset 将当前分支的HEAD指向给定的版本,并根据模式的不一样决定是否修改index和working tree。jsp
经常使用的有三种模式,–soft, --mixed, --hard,若是没有给出则默认是–mixedsvg
mixed修改了index,index中给定commit以后的修改被unstaged。若是如今执行git commit 将不会发生任何事,由于暂存区中没有修改,在提交以前须要再次执行git addspa
使用--soft
参数将会仅仅重置HEAD
到制定的版本,不会修改index和working tree,本地文件的内容并无发生变化,而index中仍然有最近一次提交的修改,这时执行git status会显示这些修改已经在再暂存区中了,无需再一次执行git add
使用--hard
同时也会修改working tree,也就是当前的工做目录,那么最后一次提交的修改,包括本地文件的修改都会被清楚,完全还原到上一次提交的状态且没法找回。因此在执行reset --hard
以前必定要当心
git reset fcd2093 a.jsp
git reset –hard origin/master (也能够是develop分支)
git reset 057d
有时候,若是咱们上传的文件太大,失败了,可是又已经commit了,很难受,又不能撤回,有时候又不知道究竟是哪一个文件太大了。因此须要了撤回到上次commit的状态。也就是说本地的修改能够经过git status显示出来
git log 查看comit 的id git reset fadsfadsfadsf123 (你运行gitcommit 以前的那个最新commit ID) git status 就能够看到咱们本地刚刚作的修改了哦 哈哈哈,这个才是真正牛逼的东西
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LoWLyzqj-1572840941464)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572837363209.png)]
D:\workspace\scf-resurgence>git reflog 54c65741 (HEAD -> 20191016-1.0.1-SNAPSHOT) HEAD@{0}: rebase finished: returning to refs/heads/20191016-1.0.1-SNAPSHOT 54c65741 (HEAD -> 20191016-1.0.1-SNAPSHOT) HEAD@{1}: rebase: 信贷核心参数修改 38024757 HEAD@{2}: rebase: 信贷核心参数修改 387f8163 HEAD@{3}: rebase: dev环境配置 d0125a78 HEAD@{4}: rebase: 冲突修改 77107232 HEAD@{5}: rebase: 信贷核心字段修改 6c2ca94f HEAD@{6}: rebase: 年利率改成利率+利率类型 caebb6b9 HEAD@{7}: rebase: 信贷核心参数调整 8139dd8d HEAD@{8}: rebase: 日志补充
git log filename
git log -p filename
git show commit-id filename
$ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch path-to-your-remove-file' --prune-empty --tag-name-filter cat -- --all 一、 path-to-your-remove-file 就是你要删除的文件的路径 若是不加/,则默认是相对路径 , 二、若是你要删除的目标不是文件,而是文件夹,那么请在 `git rm --cached' 命令后面添加 -r 命令,表示递归的删除(子)文件夹和文件夹下的文件,相似于 `rm -rf` 命令。 三、若是文件或路径里有中文,可使用通配符*号,sound/music_*.mp3, 这样就把sound目录下以music_开头的mp3文件都删除了.
若是你看到相似下面这样的, 就说明删除成功了:
Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (266/266) # Ref 'refs/heads/master' was rewritten
以强制覆盖的方式推送你的repo,
git push origin master --f --all
$ rm -rf .git/refs/original/ $ git reflog expire --expire=now --all $ git gc --prune=now Counting objects: 2437, done. # Delta compression using up to 4 threads. # Compressing objects: 100% (1378/1378), done. # Writing objects: 100% (2437/2437), done. # Total 2437 (delta 1461), reused 1802 (delta 1048) $ git gc --aggressive --prune=now Counting objects: 2437, done. # Delta compression using up to 4 threads. # Compressing objects: 100% (2426/2426), done. # Writing objects: 100% (2437/2437), done. # Total 2437 (delta 1483), reused 0 (delta 0)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o2elQEAX-1572840941466)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572837980928.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rvo9H9m-1572840941466)(https://raw.githubusercontent.com/HealerJean/HealerJean.github.io/master/blogImages/1572837987994.png)]
git config --global core.longpaths true感兴趣的,欢迎添加博主微信
哈,博主很乐意和各路好友交流,若是满意,请打赏博主任意金额,感兴趣的在微信转帐的时候,备注您的微信或者其余联系方式。添加博主微信哦。
请下方留言吧。可与博主自由讨论哦
微信 | 微信公众号 | 支付宝 |
---|---|---|
![]() |
![]() |
![]() |