git --version
git clone https://github.com/git/git
# 推荐
git update-git-for-windows
任意位置右击鼠标,选择 Git Bash Here 打开 Git 终端
git config --global user.name 'github用户名'
git config --global user.email '邮箱'
git config --list
mkdir 文件夹名(英文)
git init [项目名] //在当前路径下创建一个项目,并初始化
git init //把当前目录初始化成git仓库
提示 Untracked files: 下的红色文件表示工作区的文件未添加到暂存区;
提示 Changes to be committed: 下的绿色文件表示已添加到暂存区;
提示 Changes not staged for commit: 下的红色文件表示文件已被修改且未添加到暂存区。
git status
可以添加单个或多个文件,使用 . 时表示工作目录所有新增和修改的文件,不包括删除文件,-A 参数包含新增、修改、删除的文件。
git add 文件
git commit -m "提交描述"
显示最近n次commit记录,不指定参数n表示全部
git log -n
一般在文件目录中把没用的文件删除,或者用rm命令删除。
rm -rf 文件
git rm 文件
git commit -m "提交删除描述"
在Git中,HEAD指针指向当前版本,HEAD^表示上一个版本,一个 ~ 或者 ^ 表示往前一个版本,以此类推;如果版本很多可以使用commit id 或者 HEAD~n,n表示往前n个版本。
HEAD实际上是指向某一分支的指针,使用到HEAD的地方完全可以用分支替换,如主分支master
当找不到 commit id 时使用以下指令可以查看每次提交和回退的记录。
git reflog
会重置State区和工作目录中的内容,id一般使用前四位就行。
git reset --hard HEAD^
git reset --hard commit-id
回退版本,保留工作目录和暂存区的内容,并把与工作目录内容有差异的文件放进暂存区。
git reset --soft HEAD^
reset 如果不加参数,那么默认使用 --mixed 参数。回退版本,保留工作目录,并清空暂存区。
git reset HEAD
指定一个或多个文件,使用 . 时表示所有文件。如果暂存区存在文件,优先将暂存区的文件恢复到工作目录,否则将版本库的文件恢复到工作目录,总之能恢复到最新的git add 或 git commit 时的状态。
git checkout -- [file]
指定一个或多个文件,使用 . 时表示所有文件。
git reset HEAD [file]
不加参数即默认比较工作区与暂存区
git diff
git diff HEAD
git diff --cached [commit id]
git branch [name]
git checkout/switch [name]
git checkout -b [name]
git switch -c [name]
git branch
git branch -d [name]
将name分支与当前所在分支合并
git merge [name]
Git用<<<<<<
>>>>>>分支name标记出不同分支的内容,等号作为分隔线,需要手动修改文件内容后再提交。git log --graph
发布一个版本时,我们通常先在版本库中打一个tag标签,它跟某个commit id绑在一起。
git tag
git tag [tagname] //默认为HEAD
git tag -a 标签名(如V1.0) commit-id -m "标签描述"
git tag -d 标签名(如V1.0)
git show 标签名(如V1.0)
首先在GitHub上创建一个新的仓库
将github项目复制到本地
git clone 项目url
远程库的别名,Git默认叫origin,也可以改成别的名称。第一种使用SSH协议传输,需要生成密钥,第二种是https协议传输,不需要生成密钥。
git remote add origin 项目url
git remote add origin git@github.com:Elaine-sl/test.git
git remote add origin https://github.com/Elaine-sl/test.git
如果提示 fatal: remote origin already exists. 表示仓库已经存在,先删除再链接。
git remote rm origin
输入指令后,要求确认路径和密码,一路默认的回车就行(也可根据需要更改);打开刚才的文件路径,找到 id_rsa.pub,复制里面的 key,从github进入Account->Settings->SSH and GPG keys进行添加SSH keys。
ssh-keygen -t rsa -C "GitHub使用的邮箱"
ssh -T git@github.com
格式:git push <远程主机名> <本地分支名> :<远程分支名>
<1>省略远程分支名,通常推送到同名的远程分支,如果不存在将会被创建。
<2>如果当前分支与多个远程主机存在关系,可以加参数-u,表示默认一个主机,之后使用 git push 也可以,默认只推送当前分支到远程。
git push origin master
git push -u origin master
将远程主机的master分支最新内容拉到本地,但不进行合并,需要使用git merge命令进行合并。如果没有指定远程分支则将远程主机的全部更新拉回本地。
git fetch origin master
格式:git pull [远程主机名] [远程分支名]:[本地分支名]
如果远程分支与当前分支合并,本地分支可以省略。
pull 将远程主机的master分支最新内容拉下来后与当前本地分支直接合并。
git pull origin master
git push origin 标签名 //一个
git push origin --tags //所有标签