一、仓库:
1.创建代码库:
1.1 新建一个目录,并初始化为git代码库
git init ${dir_name}
1.2 在当前目录初始化:
git init
2.下载一个项目,及完整代码历史
git clone ${git_url}
3.更新本地代码库:
3.1本地没有修改:
git pull
3.2本地有修改:
3.2.1修改未提交至暂存区:
1)想保留本地修改
git stash #把本地修改提交到暂存区
git pull #拉取远程库代码
git stash pop #将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下
2)放弃本地修改
git checkout .
git pull
3)本地有未追踪的文件:
删除方法
git clean -n
git clean -df
git clean -f
3.2.2本地修改已提交至暂存区:
git pull
4.修改提交的远程仓库地址
打开文件:.git/config
修改remote "origin"中的url地址
二、配置:
1.设置用户信息
git config --global user.name "username"
git config --global user.email "email_address"
2.保存账号密码:
git config --global credential.helper store
三、代码(文件)管理:
工作区、暂存区、代码库的关系如下:
1.添加文件到暂存区
1.1 添加指定文件到暂存区
git add file1 file2
1.2 添加指定目录到暂存区,包含子目录:
git add ${dir_name}
2.删除工作区文件
git rm file1 file2
3.停止追踪指定文件
git rm --cached file1
4.文件重命名,并保存到暂存区
git rm file_original file_renamed
5.文件提交
5.1提交暂存区所有内容到仓库:
git commit -m "message"
5.2提交暂存区指定文件到仓库:
git commit file1 file2 -m "message"
5.3提交工作区修改内容到仓库,不经过暂存区
git commit -a -m ""
6. 代码回退到指定版本:
6.1在本地代码仓库中还原(修改未push到远程仓库)
6.1.1工作区有修改:
1)未放暂存区:
git checkout filename #撤销修改
2)已放暂存区:
git reset HEAD filename #取消暂存
git checkout filename #撤销修改
3)已提交至本地库:
git reset [--hard|soft|mixed|merge|keep] [commit|HEAD]
6.1.2本地没有修改:
git reset --hard commitId
6.2对远程仓库的提交做回滚:
6.2.1若每次更新都打tag:
git checkout tagname
6.2.2回滚某次提交:
git log #显示提交日志,找到要回滚的commitID
方法一:
git revert commitId #回滚到改commitId
git push origin master
7对比代码差异:
7.1对比working tree和stage状态下文件的不同
git diff [path]
7.2对比stage和commit状态下文件的差异
git diff --cached
四、分支管理:
1.新建分支:
1.1新建分支,但停留在当前分支:
git branch branch_name
1.2新建分支,并切换到改分支:
git checkout -b branch_name
2.删除分支
2.1删除本地分支:
git branch -d branch_name
2.2 删除远程分支:
git push origin --delete branch_name
3.分支列表:
3.1本地分支列表:
git branch
3.2.远程分支列表:
git branch -r
4.切换分支:
4.1切换到指定分支,并更新工作区:
git checkout branch_name
4.2切换到上一个分支
git checkout -
5.合并分支:
5.1合并指定分支到当前分支
git merge branche_name
5.2合并某个commit到当前分支
1)通过git log 查看提交的哈希值
git log |less
2)切换到需要合并的目标分支
git checkout master
3)合并某次提交
git cherry-pick 哈希值
6. 推送本地分支至远程
git push origin local_branch:remote_branch
7.建立本地分支与远程分支的追踪关系
git branch --set-upstream-to=origin/remote_branch your_branch
8.本地分支重命名
git branch -m old new
9.查看分支创建时间
git reflog show --date=iso branch_name
五、tag管理:
1.创建tag:
git tag -a tagname -m "tag说明"
2.删除tag:
2.1 删除本地tag:
git tag -d tagname
2.2 删除远程库tag:
git push origin --delete tag tagname
3.提交tag至远程库:
git push origin --tags