Git管理工具的使用(常用命令基本上都涵盖了)

git: 分布式的项目(代码)管理软件

一个远程的仓库,多个本地的仓库,团队开发。

Git 准备/使用

下载git 并安装(自行百度)

创建本地仓

   桌面右键 gitBash 进入git ,然后 跳转到你要存放仓库的地方(如: cd : d/develop)

$ mkdir git-repository
$ cd git-repository
$ pwd
/d/develop/git-repository

初始化仓库

$ git init
Initialized empty Git repository in D:/develop/git-repository/.git/

设置 用户名    

$ git config --global user.name "用户姓名"
$ git config --global user.email "用户邮箱" 

简单的使用

1、创建一个文件(Linux 系统下 Shift+连按二次Z Z)

$ vi newfile.txt

2、提交到暂存区 (没有反应的。。.)使用git add -Agit add . 可以提交当前仓库的所有改动。

$ git add newfile.txt

3、提交至本地仓库

git commit命令,-m 后面输入的是本次提交的说明 

$ git commit -m "提交文件"
[master (root-commit) d70b36f] 提交文件
 1 file changed, 1 insertion(+)
 create mode 100644 newfile.txt

工作区操作文件,然后add到 暂存区,再commit 提交

关联远程仓库

HTTPS地址配置

1、设置远程地址

$ git remote add origin https://gitee.com/love_yu_0698/git-repository.git

2、拉取远程代码(初次建仓库的README)

git pull origin master

3、添加要上传的文件 

$ git add readme.txt

$ git commit -m "提交"

4、push 推送代码到 remote 远程服务器上

git push -u origin master

SSH地址配置

1、在本地生成sshkey

ssh-keygen -t rsa -C "xxx@qq.com" 

会提示信息 继续按三次回车即可

2、查看你的 public key,

cat ~/.ssh/id_rsa.pub

3、复制key 并把他添加到码云(Gitee.com) SSH管理-添加公钥

4、添加后,在终端(Terminal)中输入 

ssh -T git@gitee.com 

出现 welcome to Gitee.com, 你的名字!  #则添加成功

5、添加远程仓库地址 ,拉取代码/推送

$ git remote add origin git@gitee.com:love_yu_0698/git-repository.git
$ git pull origin master
$ git push -u origin master  // 下一次可以直接 git push 后面不需要跟分支名

Git 常用命令

查看文件状态 (暂存区内的文件)

$ git status

查看文件改动的内容  $ git diff 文件名

$ git diff newfile.txt

查看最近到最远的提交日志( 一行显示)

$ git log
$ git log --pretty=oneline

撤销本地Commit

$ git reset HEAD~

回退版本

$ git reflog  # 获取每次提交后的版本号
$ git reset --hard HEAD^   # 回退上一版,^^回退上上版,依次类推
$ git reset --hard HEAD 版本号   # 常用

删除文件

$ git rm newfile.txt
$ git commit -m "delete file"

撤销修改/恢复删除的文件

$ git checkout -- newfile.txt 
----- 丢掉工作区修改的文件 还没有 add到暂存区

$ git reset HEAD newfile.txt 
----- 已经添加到了暂存区的文件 还没有commit,可以退回该文件到工作区

拉取指定的远程分支(本地分支不存在)

方法1: 需要3步,(而且还存在 需要merge 的情况)

1、创建本地分支
git checkout -b 本地分支名

2、推送本地分支到远程仓库 -- 建立关系
git push --set-upstream origin 远程分支名

3、将远程分支的内容都拉取到本地
git pull origin 远程分支名

方法2:需要2步

git fetch       // 用于获取最新的远程分支

git checkout -b 本地分支名 origin/远程分支名

方法3: 只需要一步 建立连接 ,并拉取内容

git branch --track remotes/origin/远程分支名

分支管理(解决冲突)

查看当前分支

$ git branch
$ git branch -a  //查看所有分支

创建分支

$ git branch 分支名

切换分支

$ git checkout 分支名

创建+切换分支

$ git checkout -b 分支名

合并某分支到当前分支 如:A当前分支(有a,b文件) B被合并的分支(有a,c文件),merge 结果为 A分支(有a,b,c文件)

$ git merge 被合并的分支

删除分支

$ git branch -d 分支名
$ git branch -D 分支名 //强行删除

bug分支(正式环境出bug了,但是你手头上的项目做到了一半,又不能commit 可以通过 git stash 来解决)

暂时保存当前分支的内容

$ git stash

查看暂时保存的详情

$ git stash list

-------checkout 回到master分支,拉取代码,然后 创建新的分支,修改 ,测试,再合并修改后的分支,测试,发布---------

恢复 暂时保存的内容

$ git stash apply  //恢复,但是恢复后,stash内容并不删除
$ git stash drop   //删除,stash内容
$ git stash pop    //恢复,并删除

远程库操作

更新远程仓库最新到本地(不会自动merge)

$ git fetch

查看远程仓库地址信息

$ git remote     
$ git remote -v //详细信息

推送至远程分支

$ git push origin 分支名

$ git push --set-upstream origin 分支名  // 第一次推送 需要这么写,如果远程没有该分支名,会创建一个远程分支

查看远端库的分支情况

$ git branch -r 
$ git branch -a  //前文有讲到,这个命令是查看所有分支

git强制从远程拉下来文件

$ git pull origin master --allow-unrelated-histories

git删除远程分支

$ git push origin --delete 远程分支名

第一次把本地项目放到远程仓库

①初始化本地仓库

git init

②将所有文件添加到本地仓库(add 后面的空格+点 不能少)

git add .

③将项目提交到本地git仓库 (“first commit” 是备注信息 自己随便写)

git commit -m "first commit"

④本地git仓库与远程仓库关联(git@xx.xx.xx.xx:repos/xxx/xxx/xxx.git 是远程仓库地址)

git remote add origin git@xx.xx.xx.xx:repos/xxx/xxx/xxx.git

⑤将项目推送到远程仓库(master是分支名 -f 强制推送)

git push -u origin master -f 或者 git push origin master

执行⑤出错的话 执行下面命令后 在执行⑤

git pull --rebase origin master

⑥强拉失败 执行如下命令

git pull origin master --allow-unrelated-histories

解决冲突 merge

团队开发都会遇到的。

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

关于 Rebase

git merge A分支  -- 将A分支合并到当前分支,A分支的commit也会带入

git merge A分支 B分支  -- 将A分支合并到B分支

git rebase A分支  --  把当前分支基于A分支做rebase,把A分支合并入当前分支,A分支的commit变为一行(如果有多行)

git rebase A分支 B分支  --  把A分支基于B分支做rebase,把B分支合并入A分支,A分支的commit变为一行(如果有多行)

查看目标分支是从哪个分支切出来的

git reflog show yuqiang-v6-9-2-safe

git commit 撤销操作

撤销commit的操作, git reset --[soft | mixed | hard] HEAD^

下面重点讲一讲,soft mixed hard几个参数的区别
1> --mixed
不删除工作空间改动代码,撤销commit,并且撤销git add .
mixed为默认参数,也即git reset --mixed HEAD^与git reset HEAD^效果一样

2> --soft
不删除工作空间改动代码(在暂存区),撤销commit,不撤销git add .

3> --hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。

git commit --amend
如果只是commit注释内容写错,就执行git commit --amend去修改commit的内容即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值