安装
在 Windows 平台上安装 Git ,通过国内的镜像下载安装包:https://npm.taobao.org/mirrors/git-for-windows/ 。
配置
/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。 ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。 在配置个人的用户名和电子邮件地址时,如果用了 --global 选项,那么更改的配置文件就是位于用户主目录下的那个,以后所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者邮件,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。
$ git config --global user.name "name"
$ git config --global user.email email@example.com
查看配置信息,也可以通过查看 ~/.gitconfig 或 /etc/gitconfig 文件。
$ git config --list
操作
初始化仓库,会在当前目录生成 ./git 目录,存放所有 Git 需要的数据和资源。
$ git init
$ git remote -v //查看当前远程仓库
$ git remote add [ shortname] [ url] //添加远程仓库
$ git remote rm [ shortname] //删除远程仓库
$ ssh-keygen -t rsa -C "email@example.com" //生成 SSH Key
后面的 email@example.com 改为在 Github 上注册的邮箱,之后会要求确认路径和输入密码,这里使用默认的一路 Enter 。成功的话会在 ~/ 目录下生成 .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。 然后在 github.com 官网上找到 setting,里面有 ssh and GPG keys 选项,点击add ssh key。 为了验证是否成功,如下操作。
$ ssh -T git@github.com
yes 后出现 Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access 即为成功 添加项目。
$ git add [ file/dir] //添加文件或目录到暂存库
$ git commit -m [ message] //提交到仓库,并附带备注信息
$ git push -u origin master //上传至远程仓库,默认分支名称master,可以添加 --force 强制push
$ git pull origin master //从远程获取代码并合并本地,默认分支名称master
$ git clone https://github.com/name/xxx //从url目录远程拷贝项目
$ git rm [ file] //删除文件
$ git mv [ file] [ new_file] //移动文件
$ git reset [ HEAD^/version] //回退至上一个版本或某个版本
$ git restore . //将还原所有未提交的更改,包括工作目录和暂存区的更改
查看 Git 仓库当前状态,查看历史提交记录,按 q 退出。
$ git status
$ git log
$ git branch //查看分支
$ git switch -c < new-branch-name> //创建新分支并切换到该分支
$ git merge //合并分支
$ git branch -d < branch-name> //删除分支branch-name
问题
执行 git push -u origin master (若出错:! [rejected] master -> master (fetch first). 执行第下一步) 执行 git pull --rebase origin master (若出错:error: Cannot pull with rebase: You have unstaged changes. error: Additionally, your index contains uncommitted changes. 执行下一步) 执行 git stash (未提交的更改) 若出现:not a git repository (or any of the parent directories): .git,执行 git init。