Git

或在命令行上创建一个新的存储库

echo#gittest”>> README.md 
git init 
git add README.md 
git commit -m“first commit” 
git remote add origin git@github.com:xuanjian9 / gittest.git
git push -u origin master
或从命令行推送现有存储库
git remote add origin git@github.com:xuanjian9 / gittest.git
git push -u origin master

 

强制覆盖本地文件

git fetch --all && git reset --hard origin/master && git pull

 

 清除本地缓存

git rm -r --cache .

 

提交

git add .
git commit -m""
git push origin master

 

警告:

warning: LF will be replaced by CRLF in ...... 
The file will have its original line endings in your working directory. 
解决方案:关闭自动提示即可
git config --global core.autocrlf false

 

 

方案一:用命令行创建一个新的仓库

如果已经拉取了git仓库,那我们只需要在该仓库下进行项目的新建等操作即可

git clone git@gitee.com:xuanjiange/PHPQuickStart.git //将项目拉至本地
git init //在本地初始化git git add README.md //将本地创建的README.md文件添加到暂存区 git commit -m“first commit” //将暂存区内容提交,到此,之前的操作都是为了初始远程仓库 git remote add origin git@gitee.com:xuanjiange/PHPQuickStart.git //添加到远程仓库 git push -u origin master //第一次推送到远程仓库需要 -u,将本地master推送到远程master,以后就直接Git push 就好了

 

方案二:用命令行将本地仓库推送到远程仓库

如果你已经建好了项目,但是还没有加入git管理的话,可以如下操作:
1.先新建一个远程仓库待用,如上图
2.先在本地建立git版本管理,在项目目录下进行如下操作

git init         //项目目录下会多一个.git文件夹,不过我们平时像vue-cli生成的项目,会自带git初始化文件
git add .        //将项目目录下的所有内容添加到暂存区,如果有不需要版本管理和提交的内容在.gitignore添加,没有该文件的话先新建一个
git commit -m“first commit”        //提交说明注释
git remote add origin git@gitee.com:xuanjiange/PHPQuickStart.git        //添加到远程仓库
git push -u origin master    //第一次推送到远程仓库需要 -u,将本地master推送到远程master,以后就直接git push 就好了

 

 部分文件或文件夹未提交

两种情况

一、未提交文件夹中已存在.git删除即可提交

二、git Bash Here 中输入touch .gitignore 在文件夹中查看.gitignore 文件内容

  可能存在未提交的文件或文件夹名称,删掉后重新提交

 

.gitignore文件

 git过滤文件,用于配置哪些提交哪些不提交


# 忽略掉所有文件名是 foo.txt的文件.

foo.txt

# 忽略所有生成的 html文件,

*.html

# foo.html是手工维护的,所以例外.

!foo.html

# 忽略所有.o和 .a文件.

*.[oa]
配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

#如:
1)/mtk/                  过滤整个文件夹
2)*.zip                  过滤所有.zip文件
3)/mtk/do.c             过滤某个具体文件
4)!/mtk/*.log        mtk文件夹中所有的.log文件提交

更新文件
git rm -r --cache .
git add .
git commit -m ‘update .gitignore’

 

分支

查看分支

//查看本地分支
git branch

//查看远程分支
git branch -r

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

//查看所有未合并分支
git branch --no-merged

 

创建分支

git checkout -b iss53

//以上为以下两句的简写
git branch iss53 //创建本地分支
git checkout iss53 //切换到本地分支

 

切换分支

git checkout master

 

同步分支

git fetch origin --prune

 

推送分支

//提交分支
git add .
git commit -m"add branch iss53"
git push origin iss53  //提交到远程仓库分支

 

合并分支

git merge dev

 

删除分支

//未合并的分支无法删除
git branch -d dev

//强制删除分支
git branch -D dev

//删除远程分支
git push origin --delete <BranchName>

 

 

版本管理

查看版本信息

git log

//简略信息
git log --pretty=oneline

 

回退版本

git reset --hard id

 

推送版本

git push origin HEAD --force

 

 

 

清除过期文件(.git过大时使用)

(注意,此操作将导致Git库不可回滚!)

1、运行 gc , 对之前的所有提交做修剪

git gc --prune=now

2、查看过大的文件

git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"

3、移除文件历史

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch '*'" --prune-empty --tag-name-filter cat -- --all

4、重新 repack

// git for-each-ref 输出指定位置所有reflog条目,--format 指定带有特定字符的Object
// git update-ref update reflog条目

git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin

5、删除时间过早的reflog条目

git reflog expire --expire=now --all

6、运行 gc , 对之前的所有提交做修剪

git gc --prune=now

 

posted @ 2019-10-30 17:05  悬剑丶  阅读(214)  评论(0编辑  收藏  举报