赞
踩
1.在本地新建一文件夹用来存放项目代码 (和远端项目同名)
2.进入该文件,右键选择 git bash here,打开命令窗后,输入初始化命令:git init
3.命令行:git remote add origin 后面是项目所在远程仓库地址(不是远程分支名称,而是仓库地址)
4.拉取远程分支到本地:git fetch origin dev(dev是你要拉取的远程分支名称)
5.在本地创建dev分支并且切换到该分支:git checkout -b dev(本地分支名称)
6.拉取分支到本地:git pull origin dev(远程分支名称)
另外其他一些指令,是学习后总结的一些可能会用到的内容,在分享一个学习网站,git小游戏Learn Git Branching:
#git
git rebase和merge的区别:git rebase会改变总的提交进程,会合并掉,中间一系列的合并看不到过程,篡改历史,全部把提交记录合并到一个总线;git merge 可以看到中间详细不同分支的合并过程,不按照时间顺序,且会生成一个新提交
git rebase 分支A 说明:将当前的分支合并到,并按照时间顺序排列commit,在远程端不适合使用rebase,除非只在自己个人的分支上,适合使用,因为rebase会改变远程的提交基线,如果别人先clone下来,后续基线发生变化,又要重新合并
git rebase -i main #界面化可以省略掉中间的提交
git rebase 分支A 分支B 说明:将分支B变基到分支A的最新版本上,如果是分支B留空则是将当前分支变基到分支A的最新版本上
git cherry-pick C4 C5 C6 #可以单独取几个分支来合并
git commit --amend #修改commit,会改变commitid
git branch -f 分支A 分支B 说明:将分支A指向分支B
git tag v1 main~2 说明:将分支main的前面两个分支标注v1
git rebase适用场合:1.不能在和别人共享的分支上使用rebase,否则如果改掉基线,commitid会改变,导致别人本地的基线冲突;2.可以用在很久没有更新的本地代码上
git pull = git fetch + merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
ls -a #显示隐藏的。git文件夹
在~/.gitconfig文件中配置如下参数[alias]:
l0 = log --color --graph --decorate --pretty=oneline --abbrev-commit --date-order
l1 = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
l2 = log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
l3 = log --graph --pretty=format:'%h -%d %s (%ci) <%an>' --abbrev-commit --date=relative
git push -u origin likx_test #可以重新指定与远程同名的分支(推荐这种方式,执行之后以后就可以git push了)
git remote prune origin #git清除本地有远端没有的分支
情况一:未使用 git add 缓存代码时:
// 放弃单个文件修改,注意不要忘记中间的"--",不写就成了检出分支了!
git checkout -- filepathname
// 放弃所有的文件修改
git checkout .
情况二:已经使用了 git add 缓存了代码:
可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改
情况三:已经用 git commit 提交了代码:
可以使用git reset HEAD^,不删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。
注意:-mixed 为默认参数。git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
git reset --soft HEAD^,不删除工作空间提交的代码,撤销 commit,但不撤销 git add . 操作。
注意:就是说仅仅是撤回提交,修改的代码仍然保留在本地仓库。
git reset --hard HEAD^
删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。
注意:就是说即撤回后,本地提交的代码也不保留。就等于恢复到了上一次的 commit 状态。
你可以使用 **git log **命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid
撤销 git reset --hard HEAD~1
方法一:
1.先通过git reflog找到上一次的历史提交记录id,git如果没有特意设置,是会保存记录一段时间的(a few days or a month)
2.git reset --hard [id]
方法二:
git reset --hard HEAD@{1} 直接回到刚才的那个结点,{}中表示的是结点的序号
git clone 后,会分离出项目的文件。
误删除了,可以使用以下命令恢复:
#先检查一下git状态
git status
#通过如下命令重新分离出文件
git checkout -f HEAD
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。