您的位置:首页 > 运维架构 > Linux

git&Linux命令行基础&github远程仓库

2018-01-23 02:10 302 查看
参考资料:

廖雪峰git教程

常用 Git 命令清单

Linux命令对应的英文全称

每天一个linux命令

查询网站:explainshell,查命令行英文全称,便于记忆和了解作用

Linux命令行通用操作

查看当前路径

pwd

英文全名:Print Working Directory

查看当前目录下文件

ls (不包括隐藏文件)

英文全名:list

ls -a (包括隐藏文件)

ls -al (包括隐藏文件的详细信息)

切换目录

cd

英文全名:Change Directory

例:

cd /c/project

cd code

cd ../css

cd ~/Desktop

创建文件夹

mkdir

英文全名:Mike Directory

创建文件

touch

删除文件

rm (删除文件)

英文全名:ReMove

rm -rf (删除文件夹)

重命名文件

mv readme.md(旧) README.md(新)

英文全名:MoVe

显示整个文件

cat

git相关操作

设置名字和Email地址

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"


列表内容

$ git config --global push.default simple # 推送本地当前分支(必要的设置)
$ git config --global core.quotepath false #防止文件名变成数字
$ git config --global core.editor "vim" # 使用vim编辑提交信息


–global 表示你这台机器上所有的Git仓库都会使用这个配置

初始化仓库

$ git init

把文件添加到仓库

$ git add readme.txt

git add -A (提交所有变化)

git add -u (提交被修改(modified)和被删除(deleted)文件,不包括新文件(new))

git add . (提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件)

把文件提交到仓库

$ git commit -m “wrote a readme file”

查看仓库当前的状态

$ git status

git status -sb (简明扼要版)

查看修改内容

git diff readme.txt

git diff HEAD - - readme.txt(查看工作区和版本库里面最新版本的区别)

查看提交日志

$ git log

- -pretty=oneline参数,简明版

回退版本

$ git reset - -hard HEAD^

用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

版本号

$ git reset - -hard 版本号

commit id,找到对应的版本号可回到对应的版本

查看命令历史,找到所需版本号

$ git reflog

撤销修改,复原文件

git checkout - - readme.txt

让这个文件回到最近一次git add或git commit时的状态,既可丢弃工作区的修改,也可复原误删的文件

git reset HEAD readme.txt

把暂存区的修改回退到工作区

从版本库中删除文件

git rm test.txt

git commit -m “remove test.txt”

需要注意的事项

1.git无法跟踪图片、视频这些二进制文件

2.千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”

github远程仓库

创建SSH Key

$ ssh-keygen -t rsa -C “youremail@example.com”

一路回车,使用默认值即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

登陆GitHub,打开“Account settings”,“SSH Keys”页面,添加公钥。

关联github远程仓库

$ git remote add origin git@github.com:username/learngit.git

username为GitHub账户名

这里把远程库的地址添加个标签叫origin

也可以添加别的名字作为标签,例如:

git remote add gitlab git@gitlab.com:abc/blog.git

推送的时候推送到对应标签上:

git push gitlab master

$ git remote (查看远程库的信息)
$ git remote -v(显示更详细的信息)
$ git remote remove gitlab(删除远程库gitlab 标签)
$ git remote set-url origin git@github.com:jirengu/blog3.git(修改origin标签对应的地址)
$ git remote rename gitlab coding(把 gitlab 标签改名为coding)


把本地库的所有内容推送到远程库上

$ git push -u origin master
第一次推送master分支时,加上了-u参数,把本地的master分支和远程的master分支关联起来
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin master
把本地master分支的最新修改推送至GitHub


从远程库克隆

$ git clone 地址

创建与合并分支(以dev为例)

$ git branch dev (创建分支)
$ git checkout dev (切换到分支)
$ git checkout -b dev(创建并切换)
$ git branch (查看当前分支)
分支前面会标一个*号
$ git checkout master(切换回master分支)
$ git merge dev (合并指定分支到当前分支)
$ git merge --no-ff -
4000
m "merge with no-ff" dev(不用fast forward模式,保留分支历史信息)
$ git branch -d dev(删除分支)


解决分支合并冲突

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

用git log –graph命令可以看到分支合并图。

解决bug时保存当前工作区

$ git stash(储藏当前工作区)
$ git stash list(查看储藏的工作区)
$ git stash apply (恢复储藏的工作区到当前的工作区)
$ git stash drop (删除储藏的工作区)
$ git stash pop (恢复并删除)
$ git stash apply stash@{0}(多次stash后恢复指定的工作区)


多人协作有冲突时

$ git pull
把最新的提交从远程仓库抓下来,然后,在本地合并,解决冲突,再推送


多人协作的工作模式通常是这样:

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

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

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git

branch –set-upstream branch-name origin/branch-name。

版本号(打标签)

$ git tag v1.0 (给当前分支打上标签v1.0)
$ git tag (查看所有标签)
$ git tag v0.9 6224937(给指定的commit id打上标签)
$ git show v0.9 (查看标签信息)
$ git tag -a v0.1 -m "version 0.1 released" 3628164 (用-a指定标签名,-m指定说明文字)
$ git tag -s <tagname> -m "blablabla..." (可以用PGP签名标签)
$ git tag -d v0.1 (删除标签)
$ git push origin v1.0 (推送标签到远程)
$ git push origin --tags (一次性推送全部尚未推送到远程的本地标签)
$ git push origin :refs/tags/v0.9 (删除远程库里的标签)


自定义Git

附:

常见的自带命令

操作命令
进入目录cd
显示当前目录pwd
创建目录mkdir 目录名
创建目录mkdir -p 目录路径
我是谁whoami
查看路径ls 路径
查看路径ls -a 路径
查看路径ls -l 路径
查看路径ls -al 路径
创建文件echo ‘1’ > 文件路径
强制创建文件echo ‘1’ >! 文件路径
追加文件内容echo ‘1’ >> 文件路径
创建文件touch 文件名
改变文件更新时间touch 文件名
复制文件cp 源路径 目标路径
复制目录cp -r 源路径 目标路径
移动节点mv 源路径 目标路径
删除文件rm 文件路径
强制删除文件rm -f 文件路径
删除目录rm -r 目录路径
强制删除目录rm -rf 目录路径
查看目录结构tree
建立软链接ln -s 真实文件 链接
下载文件curl -L https://www.baidu.com > baidu.html
拷贝网页wget -p -H -e robots=off https://www.baidu.com
磁盘占用df -kh
当前目录大小du -sh .
各文件大小du -h
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git 命令行