git的使用

git的使用

优秀博客地址:https://www.cnblogs.com/tugenhua0707/p/4050072.html

git init 创建全新的仓库

git clone [url]克隆远程仓库

git status 可以检查当前分支的文件状态

整体流程

连接远程仓库

1.git remote add origin ssh地址

第一次全部推送至云端

2.git add .将所有文件添加到暂存区

git commit -m ‘‘可以是中文描述性文字’’ 将分支提交到仓库中 -m表示添加一个提交消息

git push -u origin master 把本地库的内容推送到远程

在本地建立自己的分支

3.git checkout -b ** xxx** 用来切换到xxx分支上 -b用来建立新分支

在本地自己的分支

4.git add .

git commit -m “lll”

git push -u origin xxx 建立云端分支 (在自己本地分支完成代码编写后)

合并分支 推送至云端主分支

5.git checkout master 切换到主分支(本地主分支)

git merge xxx 将xxx分支合并到master主分支上

git push origin(云端已经有xxx分支了 不用-u)直接将其推送到云端

切换到本地自己的分支,拉取云端主分支

6.git checkout xxx

git fetch origin “master”

git merge FETCH_HEAD

第一次添加远程仓库

git remote add origin ssh地址(第一次提交到远程仓库)

git push -u origin master 把本地库的内容推送到远程 然后会弹出验证框 用户名为配置的邮箱

由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

从现在起,只要本地作了提交,就可以通过如下命令:git push origin master

git推送

git add . 将所有文件添加到暂存区

git add xxx 将xxx添加到暂存区

git commit -m ‘‘可以是中文描述性文字’’ 将分支提交到仓库中 -m表示添加一个提交消息

git push origin master

git建立分支

git branch 用来看自己属于哪个分支

git checkout -b ** xxx** 用来切换到xxx分支上 -b用来建立新分支

git checkout xxx可切换到xxx分支上

第一次推送

git push -u origin xxx 将本地的分支xxx推送到云端origin这个仓库中 同时以xxx 来进行保存(第一次推送时的特殊命令,云端没有xxx分支)

git合并分支

git checkout master 切换到主分支

git merge xxx 将xxx分支合并到master主分支上

git push origin(云端已经有xxx分支了 不用-u)直接将其推送到云端

git删除分支

git branch -r 列出所有远程分支

git branch -d xxx 删除xxx分支

git push origin – delete xxx git branch -dr [remote/branch] 删除远程分支

版本回退

git log命令显示从最近到最远的显示日志

git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可

可以通过版本号回退:git reset --hard 版本号

通过如下命令即可获取到版本号:git reflog;

拉取方法(转到自己分支)

git pull origin xxx

多人协作
  1. 要查看远程库的信息 使用 git remote

  2. 要查看远程库的详细信息 使用 git remote –v

  3. 现在我们的小伙伴要在dev分支上做开发,就必须把远程的origin的dev分支到本地来,于是可以使用命令创建本地dev分支:git checkout –b dev origin/dev

  4. 首先,可以试图用git push origin branch-name推送自己的修改.

  5. 如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。

  6. 如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。


git的常见指令
在这里插入图片描述

git config --global 用于全局配置

文件状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。

Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

忽略文件中的空行或以井号(#)开始的行将会被忽略。

可以使用Linux通配符。例如:星号( *)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。

如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

#为注释
.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/
.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值