GIT基本命令

Git

1. 基本指令
pwd:命令用于显示当前目录

ls –ah:显示.git目录

cat :查看fileName文件内容

git diff HEAD – readme.txt:查看工作区和版本库里面最新版本的区别

git log:显示从最近到最远的提交日志

git reflog:查看命令历史,以便确定要回到未来的哪个版本

git log --graph 查看分支合并图

2. 基本操作
git init:把所在目录变成Git可以管理的仓库

git clone -b <分支名称><远程仓库地址> 拉取项目到本地
git clone -b master ssh://…

git status:文件修改记录

git add:把文件添加到暂存区
git add . --将所有文件都添加到暂存区

git commit -m “提交说明”:把文件提交到git仓库

git push origin master:把当前分支master推送到远程master分支

git pull origin master :拉取远程master分支的代码

3. 分支

git branch:查看分支

git branch :创建分支

git checkout 或者git switch :切换分支

git checkout -b 或者git switch -c :创建+切换分支

git merge :合并某分支到当前分支

git branch -d :删除分支

git branch -D :强行删除一个没有被合并过的分支(已经add和commit了)

4. 回退和暂存
git reset <commit_id>:回退版本或者把暂存区的修改回退到工作区(暂存区回退到工作区倒是用处不大,如果git add弄错了,直接在工作区修改再次add即可)

git stash、git stash pop 工作区stash、工作区恢复(一般用于开发到一半有新的需求,需要将当前工作区暂存)

5. push详解

push:首先要切换要推送的分支

a.远程已有remote_branch分支并且已经关联本地分支local_branch且本地已经切换到local_branch
git push(远程已有,本地关联)

b.远程已有remote_branch分支但未关联本地分支local_branch且本地已经切换到local_branch
(其实很少会出现这种情况,因为在push之前都会先pull拉取远程分支上的代码)
git push -u origin/remote_branch(远程已有,本地未关联)

c.远程没有remote_branch分支,本地已经切换到local_branch
att:一般push如果远程没有分支,会自动新建一个,其实也没有必要专门带上 :remote_branch
git push origin local_branch:remote_branch(远程没有)
git push origin release_2.5.3:release_2.5.3

6. 冲突解决
1、在pull的时候,出现冲突时需要写入commit说明,输入英文状态下的i进入编辑状态,然后输入,输入完成之后esc;然后shift+冒号,然后输入wq保存刚刚输入的文件即可(如不保存,直接按q后退出),pull完毕;
直接因为下输入冒号:wq即可,:wq!强制保存退出

7. 重命名远程分支

如果想在远程重命一个分支名,首先需要知道远程的修改都是源于本地的修改,所以想要修改本地的分支:

  1. 在本地的clone版本中重命名分支
  2. 删除远程待修改的分支名
  3. 则本地的新分支名push到远程

git branch -a #查看所有分支

git branch -r #查看远程分支

git branch -vv #查看本地分支所关联的远程分支

1、本地重命名分支
git branch -m old_branch new_branch # Rename branch locally
git branch -m release_1.0.0 3.1.0

2、push 删掉远程的旧的分支名
git push origin :old_branch # Delete the old branch
git push origin :release_1.0.0

3、push 将本地的新的分支推送到远程
git push --set-upstream origin new_branch 例如:git push --set-upstream origin 3.1.0
git push -u origin new_branch# Push the new branch, set local branch to track the new remote git push –u origin 3.1.0
git push origin 3.1.0

8. Git合并两个共同的仓库
https://cloud.tencent.com/developer/ask/206231
https://www.cnblogs.com/lfzm/p/10681412.html

1、把要合并的分支clone到本地
git clone https://gitee.com/alingfly/ASF_Test.git

2、添加需要合并远程仓库
git remote add base https://github.com/AClumsy/ASF.git

3、把base远程仓库中数据抓取到本仓库
git pull

4、checkout切换到base分支上,命名为 asf

5、合并

9. Git不提交无关文件
1、从神兵上获取.gitignore文件

2、然后执行git rm -r --cached . <当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制, 可以使用>

3、之后重新commit相关文件(包括.gitignore)就可以了

10. ATT

.git的目录:Git来跟踪管理版本库的,不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

ls –ah:显示.git目录

att:改动的文件一定要放到“.git平级或者子目录下,因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。(git只能管理git仓库建立的位置的文件或者子文件,在其之外的文件是无法访问到的)

11. 基本原理

暂存区 Stage
工作区:电脑里能看到的目录

暂存区:需要提交的文件修改都要放到暂存区,然后一次性提交暂存区的所有修改

往Git版本库里添加文件的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

git pull origin release_2.5.3 做更新的时候。出现了个错误:

git解决error: The following untracked working tree files would be overwritten by checkout
原因:文件被修改了,但是没有add到仓库,在pull的时候可能会导致文件被覆盖
解决方法:git clean -d -fx “zuul/zuul.iml”
x -----删除忽略文件已经对git来说不识别的文件
d -----删除未被添加到git的路径中的文件
f -----强制运行

版本回退
1、直接丢弃工作区某文件的修改时,用命令git checkout – ;

2、丢弃添加到了暂存区的某文件的修改,用命令git reset HEAD 丢弃之后就不会被commit了;

3、已经commit到了不合适的修改到版本库时,想要撤销本次提交,用git reset – hard HEAD^参考版本回退一节,前提是没有推送到远程库。

标签管理
打上标签,其实到时候分支被删除,也可以找回打了标签时候的文件

(1)切换到需要打标签的分支上

(2)git tag <commit_id> :新建一个标签,默认打在最新commit_id上,也可以指定一个commit id;

(3)git tag -a -m "tagname info"可以指定标签信息; //可有可无

(4)git push origin 推送一个本地标签;

(5)git push origin --tags 可以推送全部未推送过的本地标签;

(6)git show :查看标签信息,可以看到说明信息 //标签不是按时间顺序列出,而是按字母排序的。标签总是和某个commit挂钩。

(7)git tag -d 删除一个本地标签;

(8)git push origin :refs/tags/ 删除一个远程标签。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值