Git使用笔记

来源:互联网 发布:8090端口是干嘛的 编辑:程序博客网 时间:2024/05/17 03:43

Git笔记

tortoiseGit图标

  • 新创建的文件没有图标
  • 已经添加到暂存区的文件具有蓝色+
  • 已经修改的文件具有红色!
  • 已经提交到本地仓库的文件具有绿色√
  • 冲突的文件具有:黄色!

使用命令+文字描述以下过程:

实现在桌面中创建一个git项目,在项目中添加文件,并提交到本地仓库的操作步骤

  • mkdir app
  • cd app
  • git init
  • touch 1.txt
  • git add *
  • git commit -m 第一次提交

在公司里面,我自己在github中创建了一个空仓库,为了把本地代码上传到这个仓库中,我应该执行哪些操作

  • mkdir app
  • cd app
  • git init
  • touch 1.txt
  • git add *
  • git commit -m 第一次提交
  • git push 服务器仓库地址 master

在公司里面,领导让我对某个github的项目进行二次开发(2+次开发),比如我要开发一个新功能(比如添加test.html文件),我应该执行哪些步骤从而将test.html文件提交到服务器中

+ mkdir app
+ cd app
+ git init
+ git pull 仓库地址 master
+ touch test.html
+ git add *
+ git commit -m 添加了一个test.html文件
+ git push 仓库地址 master

如果当前位于cart分支,我需要将cart分支合并到master分支,我应该执行哪些操作

  • git checkout master
  • git merge cart -m 合并了分支

命令默写

想要查看分支切换的操作日志,通过什么命令可以实现?

  • git reflog

版本回滚

  • git reset –hard 版本号

创建新分支

  • git branch 分支名

删除某个分支

  • git branch -d 分支名

切换分支

  • git checkout 分支名

分支合并

git merge 分支名 -m 备注信息

查看所有分支–>并说明如何辨别当前位于哪个分支

  • git branch
    • 分支前面带有*的是当前分支

Bash 命令

pwd (print working directory) 打印出当前目录路径的全名称


ls (list) 列举出当前目录(文件夹)下面的所有的子文件和子文件夹,

ls -a 列举出隐藏文件 ls 指定目录


cd (change directory) 切换当前位于的文件夹

cd 指定的文件夹路径 切换当前路径


mkdir (make dirctory) 创建文件夹

默认情况下,只能在当前目录下面创建文件夹 可以连续创建多个文件夹:mkdir a1 a2 a3
也可以在指定目录下面创建文件夹:mkdir 指定的文件夹路径/新文件夹名称
–>要确保指定的文件夹路径存在
mkdir 目录1/目录2/目录3 -p –>可以连续创建多级目录,哪怕目录1/目录2都不存在,如果某个目录不存在,先创建该目录,再创建子目录


rmdir (remove directory) 只能删除空文件夹

rm -rf 递归删除指定的文件/文件夹

其中rm是删除文件
rm -f 如果说要删除的文件、文件夹不存在,不会显示错误信息
rm -r 递归删除(常用于删除非空文件夹)
–>不能删除自身,也不能删除父目录(不能含有.和..)


touch 创建文件

touch 含有后缀的文件名
默认是在当前目录下面创建指定的文件
连续的在当前目录下面创建多个文件
touch 文件夹/文件名:在指定文件夹下面创建指定的文件


cp 复制文件

cp 源文件的路径(文件夹+文件名) 新文件的路径(文件夹)


mv (move) 移动文件

mv 源文件的路径(文件夹+文件名) 新文件的路径(文件夹)
mv 源文件的路径(文件夹+文件名) 新文件的路径(文件夹)+新文件名


vi编辑器

vi 文件名:打开一个窗口,实现对该文件进行编辑
进入编辑模式:i或者a键
退出编辑模式:esc键
如果当前不处于编辑模式,想要实现保存的功能:”:w”
………………….想要实现退出的功能:”:q”
…………………想要实现保存并退出的功能:”:wq”
–>ps:如果当前位于编辑模式,应该首先退出编辑模式,然后再实现保存or退出的功能


cat 查看文件

cat 文件名 可以查看txt/css/js等简单格式(不需要解码)的文件

Git 命令

git init 初始化

通过git init 将当前文件夹进行初始化,初始化后文件夹下会生成一个.git 的隐藏文件夹,如果不需要监控当前文件夹,可直接删除这个文件夹即可
–> 一定要明确你要将哪个文件夹被git管理起来


git status 查看仓库中的相关的文件状态

git status可以查看仓库中的相关的文件状态
如果当前文件夹下面的某个文件夹是空的,不会显示在结果中


git add 将指定的文件放到暂存区(新增或修改的文件)

在往git仓库中添加文件的时候,这些刚添加的文件,状态是:未追踪(Untracked);
使用git add 文件名–>将指定的文件放到暂存区,默认将修改的文件和未跟踪新添加的文件添加到git系统的暂存区;
注意并不包括删除的文件
把文件放到暂存区之后,状态是:待提交(changes to be committed)
git add * 或者 . –>将当前仓库中的所有的没有被提交到暂存区的代码放到暂存区


git add -u 或者 git add –update 表示将(修改和删除的文件)的操作告诉暂存区


git add -A 或者 git add –all 表示将所有的修改与删除和未跟踪的文件都告诉暂存区。


 用户名和邮箱的配置

–> git config –global user.name xxx
–> git config –global user.email xxx@qq.com
–> –global 选项可实现在本机一次配置多次使用
–> git config –global –unset user.name xxx 移除全局用户名


git commit

git commit -m 提交备注信息 将暂存区的文件提交到本地主仓库


git push

git push 服务器仓库的地址(https) master –>将本地主仓库中的代码上传到服务器中
将服务器地址保存以后就可以使用 git push 保存的名称


git remote add/remove 服务器地址保存/删除

git remote add 名称 服务器仓库地址
git remote remove 名称 把本地保存的服务器地址删除
通过git remote 获取本地保存的所有的服务器地址


配置SSH连接github

在本地生成秘钥:ssh-keygen -t rsa
找到秘钥生成的目录,将公钥放到Github中
a、github点击右上角人物头像
b、选择settings菜单
c、选择SSH相关菜单
d、选择添加一个SSH
e、输入ssh的名称,已知内容(就是公钥)将公钥放入其中,保存即可
在本地测试 ssh git@github.com看看是否成功
Hi chengxc! You’ve successfully authenticated, but GitHub does not provide shell access.


提交代码 –>服务器仓库为空

git init
touch 1.txt
git add *
git commit -m 提交信息
git push 服务器地址 分支(默认master)


提交代码 –>服务器仓库已经有内容

git init
git pull 服务器仓库地址 master –>把远程仓库的代码更新到本地,将本地仓库和远程仓库形成仓库,后面就可以实现同时开发
其它步骤操作一致 add commit push


git clone 服务器仓库地址

.gitignore 设置文件不让git管理

在.git同级目录添加一个文件,叫 .gitignore
创建这个文件名的时候,
a: 文件名:”.gitignore.”
b: bash命令:touch .gitignore
打开.gitignore进行编辑,一行一行的添加不需要git管理的文件
可以设置同类型的文件:.js .css
也可以设置整个目录:
a/*–>a目录下面的所有文件
a/*.js–>a目录下面的所有js文件


删除服务器中的文件

第一种方式:
rm 文件名
git add 文件名 (必须输入文件名加后缀,输入 * 无效)
git commit -m 提交
git push 远程服务器 master

第二种方式:
git rm 文件名
git commit -m 提交
git push 远程服务器 master

一个细节:如果某个文件在暂存区,没有进入到本地仓库,也没有进入服务器仓库
git rm 无法正常删除文件
git rm xxx -f 可以实现把文件删除(文件已提交到暂存区的情形下)
如果不在本地主仓库(暂存区和本地仓库),git rm 无法操作


git diff HEAD – 查看工作区和版本库区别

git diff HEAD – 文件名 命令可以查看工作区和版本库里面最新版本的区别

git log 查看提交日志

git log –oneline 每一次提交的(短)版本号,以及备注信息

git reflog 查看版本命令日志

git reflog 查看历史记录
这些历史记录包括:每一次提交的信息;以及每一次版本回滚的操作;分支切换操作

git reset –hard 回到某个版本

git reset –hard 版本号
git reset –hard HEAD^ 退回到上一个版本 ^表示向上
上上一个版本就是HEAD^^,往上 100 个版本写 100 个^比较容易数不过来,所以写成 HEAD~100。

git reset HEAD

git reset HEAD 文件名 将文件从暂存区移除,对工作区的文件不产生影响

git checkout –

git checkout – 文件名 将文件从仓库区(包括暂存区stage和主仓库区master)取出并替换工作区的同名文件,就是让这个文件回到最近一次git commit或git add时的状态
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景 1,第二步按场景 1 操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

git branch

查看当前拥有的所有分支(带*前缀的是当前的分支)

git branch 分支名

在当前分支下创建新分支
–>新分支会继承所有的当前分支到目前为止的所有代码

git checkout 分支名

git checkout 分支名 切换到指定分支下面去
git checkout -b 分支名 加上 -b 参数表示创建并切换

git merge 分支名 -m 备注信息 将指定分支合并到当前分支下

git branch -d 分支名 删除指定的分支

注意事项

无论是创建分支还是合并分支时刻警醒当前位于哪个位置
对于一个仓库,如果没有任何本地提交,git branch 没有结果
不要在本地分支上push代码