AKmendo

  博客园  :: 首页  :: 新随笔  ::  :: 订阅 订阅  :: 管理

一、【尚硅谷】 Git&GitHub 最全教程,从入门到精通

https://www.bilibili.com/video/av24736323?from=search&seid=3857060205860170652

@Git独有:对团队外开发者贡献的代码进行审核

@系统快照方式

@分制管理

@避免单点故障

@Git大部分操作在本地完成,不需要联网;完整性保证(哈希操作);尽可能添加数据而不是删除或修改;分分支操作非常流畅快捷;与Linux命令全面兼容。

@

@use git from git bash only(建议)

@

OpenSSL更通用一些,其实都可是实现

@

$ git add good.txt
warning: LF will be replaced by CRLF in good.txt.
The file will have its original line endings in your working directory(不用管)

 

@

@

@

@

@

在文件夹空白处右键gitbash

  • cd Git转到Git文件夹
  • ls -LA 显示文件夹内容(补全)
  • mkdir test 创建test目录(mkdir: cannot create directory ‘test’: Permission denied,win系统注意用管理员身份启动bash)
  • ll 显示当前文件夹内的文件
  • git init 初始化
  • git help hard 获取帮助,介绍hard
  • pwd   显示当前目录
  • ls -LA  显示包括隐藏的所有文件夹
  • ll .git/  显示.git文件夹内的文件(本地库文件,不能动)
  • cd   空格 .. 是上一级
  • cd   空格 / 是回最高级,也就是 /
  • cat .git/config   查看文件文本内容(config文件可查看账号)
  • cd ~  家目录(pwd 显示/c/Users/sunlu)
  • git status   提示git项目的状态
  • vim good.txt  创建文件,创建后i开始输入,输入完后esc,直接输入冒号,输入wq表示保存并退出,回车返回命令窗口。
  • rm -r xx  删除xx文件夹

 

@设置签名

作用:区别身份

形式:用户名和邮箱

辨析:这里签名与远程库的账号密码没有任何关系

命令

  • 仓库/项目级别:项目内的账户,账号信息在.git里的config
  1. git config user.name tom
  2. git config user.email xxx@xxx
  • 系统用户级别:桌面系统用户git config --global,账号在家目录的config

两者都有的话,会有限用项目级别

 @填充本地仓

创建文件:vim good.txt

查看状态:git status

提交到暂存区:git add good.txt

从暂存区撤回:git rm --cached good.txt

 

$ git add good.txt  提交到暂存区

$ git commit good.txt  提交文件到本地库,并对新提交的改变的备注

:set nu 显示vim的行号

 

vim good.txt   修改txt文件

git commit -m 'luwen' good.txt  直接备注修改情况,不用再用vim打开文本输入‘luwen’

@版本前进与后退

git log   显示历史版本 

  • commit 14fdf2b64a40d7ee6a7d71df46328dcd6e83fa05 (HEAD -> master)#HEAD是指针,commit后面的值是hash值
  • Author: AKmendo <871216137@qq.com>
  • Date: Fri Dec 7 15:46:23 2018 +0800
  • luwen

git log --pretty=oneline  显示历史版本的第一行解释

  • edc2180663f3710f9cd3d90347602e93e394452f (HEAD -> master) lsdjflasdfasdf
  • 14fdf2b64a40d7ee6a7d71df46328dcd6e83fa05 luwen

git log --oneline  显示当前版本的之前版本的第一行解释,并且hash值只显示末尾

  • edc2180 (HEAD -> master) HEAD@{0}: commit: lsdjflasdfasdf
  • 14fdf2b HEAD@{1}: commit (initial): luwen

git reflog  显示所有版本的第一行解释,并显示版本指针,就是从当前版本移动需要多少步

  • edc2180 (HEAD -> master) HEAD@{0}: commit: lsdjflasdfasdf
  • 14fdf2b HEAD@{1}: commit (initial): luwe

git reset --hard 14fdf2b  转到哈希值对应的版本(只能后退)

git reset --hard HEAD^  往后退一个版本(一个^表示退一个版本)

git reset --hard HEAD~3  后退3步

基本用hard

@删改及还原

已提交本地库的,指针到历史版本

尚未提交本地库的,指针用HEAD

git diff good.txt  修改后查看对比(工作区和暂存区比较)

git diff HEAD good.txt   工作区和本地库比较

P26

 

 

 

@windows里面的git转到路径斜杠表述:cd /c/Users/sunlu/.ssh/

廖雪峰

@下载

sudo apt-get install git

@创建目录

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

@创建仓

git init

@当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了,.git是隐藏的,用ls -a查看

(版本控制只能完全监控纯文本文件,像word、图片等二进制文件只能监控大小等变化)

@项目拷到目录中

cp -r ./* 目录地址

@把一个文件放到Git仓库,add可以多次,然后一次commit就行,-m表示加一下变更说明(提交所有git add .)

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

忽略提交

vim创建.gitignore(有些账户什么的,直接写文件名字保存里面)

@

@修改并查看修改详情及仓库状态

git diff yihang_work_1.25/manage.py

git status

@返回版本

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

git reset --hard HEAD^(如果是回退100个版本,HEAD~100,同时会把暂存区的修改回退到工作区。)

git reset --hard 1094a 根据commit id返回

git reflog 查看命令历史

@撤销

git checkout -- file 命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。让这个文件回到最近一次git commitgit add时的状态。

@删除

git rm 工作区文件删除后,再用该命令删除仓库里的文件并git commit;

@远程仓库

ssh-keygen -t rsa -C "871216137@qq.com"   在.ssh目录里面有id_rsaid_rsa.pub两个文件,分别为私钥和公钥,将公钥复制到github里。可以自己搭一个git服务器,公司内部开发必备。

@创建远程仓

git remote add origin git@github.com:AKmendo/yihang_work_xiaohei_1.25  计划提交到我的账户/目录中(如果出现“不是一个 git 仓库”,转到目标目录并git init,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的);

git push -u origin master  确认提交,实际上是把当前分支master推送到远程,-u可以把要提交的和远程库的文件进行关联,以防不一致冲突,以后本地提交后,就可以直接用这个命令同步到远程库。

@克隆

git clone git@github.com:AK/gitskills.git(克隆是在当前目录下生成一个项目文件夹)

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

@创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

@查看远程库

git remote

@版本标签

git tag v1.0 在当前分支上的版本创建标签;

git tag  查看所有标签;

git tag v0.9 f52c633  给某个commit id打标签;

@github

git remote -v  查看远程库;

git remote rm origin  删除远程库的关联

@新环境下载远程仓并关联

新建文件夹;

激活   git init;

与远程分支建立连接  git remote add origin_yihang 远程仓ssh;

分支拉到本地  git fetch origin_yihang desktop(远程分支,码云可查);

本地创建分支并切换到该分支  git checkout -b master(本地分支) origin_yihang/desktop;

内容拉到本地   git pull origin_yihang  desktop;

以后再有变更就用  git pull

@git配置过程中fatal:拒绝合并无关的历史

git pull origin master --allow-unrelated-histories    (忽略版本不同造成的影响)

 @git在win系统下add文件时出现LF警告

https://blog.csdn.net/qq_41249766/article/details/79354485

@

@pull远程库的时候提示本地有提交,合并失败:

git stash save "test-cmd-stash

@

@

@

posted on 2018-09-25 17:08  Akmendo  阅读(391)  评论(0编辑  收藏  举报