通过git从gitlab上拉取代码并关联项目

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

你可能感兴趣的:(git,gitlab,github)