Git
-
Git Bash: unix 与 linux风格的命令行,使用最多,推荐最多 clear
-
Git CMD : windows风格的命令行 cls
-
Git GUI: 图像界面的Git
Git相关配置文件
C:\Users\Razer\.gitconfig 当前登录用户的配置
C:\Program Files\Git\etc --system 系统级
设置用户名与邮箱(用户标识,必要)
git config --global user.name "jack" #名称
git config --global user.email 1076623xxx@qq.com #邮箱
设置完后可以看到在C:\Users\Razer\.gitconfig
只需要做一次这个设置,如果你传递了–global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要–global选项。总之–global为全局配置,不加为某个项目的特定配置。
显示隐藏文件的方法。
git 命令:
git init #在文件夹中执行此命令,此目录便变成一git工作目录,生成一本地git仓库,会有一.git文件夹(一般被隐藏)需要展示隐藏文件才能显示出来
git clone [url] #克隆项目,然后本地master分支会自动设定track远程master,远程仓库名设为origin
git status [filename] #查看指定文件状态
git status #查看所有文件状态
git add . #将working directory 目录下所有改动了的文件添加到Stage暂存区中
git commit -m "summary" #m代表message,summary相当于备注信息。将Stage中的所有文件提交到History,此时形成了一个新的版本(指向父结点即上个版本)
git branch #列出本地所有分支
git branch -r # 列出所有远程分支
git branch [branch-name] # 新建一个分支,但依然停留在当前分支
git checkout [branch-name] #切换到已创建好的分支
git checkout -b [branch-name] # 更快捷,新建一个分支,并切换到该分支
git branch -d [branch-name] # 删除分支
git merge [branch] # 合并指定分支到当前分支
git rebase [branch-name] #将当前分支rebase到指定分支,从而有更线性的效果。若master被base了,想要master继续作为主分支,则只需要将master rebase到那个子结点上。
git fetch [remote] #从远程仓库中下载本地仓库还没有的数据,但并不是同步,不会自动合并或修改当前的工作
git pull #从远程fetch最新版本并merge到本地,会自动合并或修改当前的工作
git pull --rebase #拉取最新版本,并将本地当前工作rebase到最新版本上
git push [remote] [branch] #上传本地指定分支到远程仓库,一般[remote]为origin,[branch]为master,即将本地master分支推送到远程origin仓库
git push [remote] [source]:[destination] #将本地source分支push到origin仓库的destination分支
git fetch [remote] [source]:[destination] #将origin仓库的source分支fetch到本地的destination分支上
git branch -f master C6 #将master分支移到C6结点上
git checkout HEAD~[number] #将HEAD指针移动到第前number次记录上,不输入number时自动为1
git reset [结点名] #本地仓库可以这样reset
git revert [结点名] #远程仓库这样返回
常用命令:
# 在已经与远程仓库建立联系的本地仓库使用
git fetch
git pull
git add .
git commit -m "summary"
git push
git status:
-
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
-
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致。
.gitignore文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件,日志等
在主目录下建立".gitignore"文件,此文件有如下规则:
*.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #忽略temp的根目录,不包括目录temp及子目录
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
SSH公钥
设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)
进入到C:\Users\Razer.ssh (若没有.ssh文件夹则新建)
ssh-keygen -t -rsa #一直回车,免密进入
在生成的文件id_rsa.pub中就是公钥的信息,可以配置到码云账户中即可