转转改改修修,能用:
查看用户名和邮箱
$ git config user.name
$ git config user.email
修改用户名和邮箱
$ git config user.name
$ git config user.email
设置用户名和邮箱(全局)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建目录,当前在d盘根目录下,创建web,然后进入web目录初始化
$ mkdir web
$ cd web
$ pwd
GhostSugar@AUSE-Computer MINGW64 /d/web (master)
$ pwd
/d/web
初始化,创建仓库
$ git init
添加文件
GhostSugar@AUSE-Computer MINGW64 /d/web (master)
$ git add css-task
提交 -m 后面是注释 本次提交的解释
GhostSugar@AUSE-Computer MINGW64 /d/web (master)
$ git commit -m "commit fist task —— css-task1"
##############################################
## 时光穿梭 ##
## 文件改动 ##
##############################################
如果有改动,用命令查看当前状态, git diff查看difference,:
$ git status
$ git diff
查看日志
$ git log
回退版本
$ git reset --hard HEAD^
$ git reset --hard 1094a
查看
$ cat readme.txt
命令记录
$ git reflog
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
删除文件
$ rm test.txt
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
还原
$ git checkout -- test.txt
##############################################
## 同步远程仓库 ##
## 文件改动 提交 ##
##############################################
先创建SSH Key 。 在windows下查看[c盘->用户->自己的用户名->.ssh]下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成。
下面email换成自己的email
$ ssh-keygen -t rsa -C "youremail@example.com"
github-settings-SSH and GPG keys
$ ssh-keygen -t rsa -C "ghostsugar799@gmail.com"
需要输入key类型,可为空,以下两次为密码,可为空不留密码
然后查看
打开id_rsa.pub
全部复制粘贴:
创建成功:
然后运行:
$ git remote add origin git@github.com:ghostsugar/web.git
com:用户名/仓库.git
如果提示已经存在,删除 :
$ git remote rm origin
Repository not found.
然后先
$ get pull
然后
$ git push -u origin master
如果出错:
(当前是因为远程上有readme.md文件)
使用命令:
$ git pull --rebase origin master
会把远程仓库文件更新到本地:
然后更新:
看到提交成功:
##############################################
## 远程分支管理 ##
## 文件改动 提交 ##
##############################################
创建一个叫做"feature_x"的分支,并切换过去:
git checkout -b feature_x
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d feature_x
除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:
git push origin <branch>
更新与合并
要更新你的本地仓库至最新改动,执行:
git pull
以在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。
要合并其他分支到你的当前分支(例如 master),执行:
git merge <branch>
在这两种情况下,git 都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。 这时候就需要你修改这些文件来手动合并这些冲突(conflicts)。改完之后,你需要执行如下命令以将它们标记为合并成功:
git add <filename>
在合并改动之前,你可以使用如下命令预览差异:
git diff <source_branch> <target_branch>
标签
为软件发布创建标签是推荐的。这个概念早已存在,在 SVN 中也有。你可以执行如下命令创建一个叫做 1.0.0 的标签:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符。可以使用下列命令获取提交 ID:
git log
你也可以使用少一点的提交 ID 前几位,只要它的指向具有唯一性。
替换本地改动
假如你操作失误(当然,这最好永远不要发生),你可以使用如下命令替换掉本地改动:
git checkout -- <filename>
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin
git reset --hard origin/master
实用小贴士
内建的图形化 git:
gitk
彩色的 git 输出:
git config color.ui true
显示历史记录时,每个提交的信息只显示一行:
git config format.pretty oneline
交互式添加文件到暂存区:
git add -i
git init 初始化本地仓库,建本地仓库用;
git add . 获取未提交的文件并放到暂存区中;(add后面有个空格)
git add 指定文件名 获取指定文件并放到暂存区中;(同上)
git status 查看文件在git仓库的状态;
git commit -m "文件说明" 将文件提交到版本库;
git push -u origin master 上传到远程仓库;
git pull origin master 将文件从远程仓库拉下来并和工作区的文件合并;
git clone 版本库的地址 将想要的项目复制到本地仓库;
git log 查看每次操作的日志,也就是每次上传的记录;
git log --pretty=oneline 查看关键信息,不看谁传的,什么时间传的,只看传了什么文件以及文件的说明;(文件说明真重要。。。文件名就是那一长串数字和字母的组合);
git reset --hard HEAD^ 回退到上一个版本,一个"^"表示一个版本,十个"^"就是回到十个版本前,也可以使用"~",git reset --hard HEAD~10表示回到十个版本前;