从需求来了解git命令
需求1:获取远程代码 1.克隆远程仓库
git clone url需求2:提交代码到本地仓库
git status 查看状态 git diff查看改变内容 git add . 跟踪所有改动过的文件 git add <> 跟踪指定文件 git mv <old> <new> 文件改名 git rm <file> 删除文件 git rm --cached <file> 停止跟踪文件但不删除 git commit -m "commit message" 提交所有更改过的文件 git commit --amend 修改最后一次提交需求3:远程操作
git remote -v 查看远程版本库信息 git remote show <remote> 查看指定远程版本库信息 git remote add <remote> <url> 添加远程版本库 git fetch < remote> 从远程库获取代码 git pull <remote> <branch> 下载代码及快速合并 git push <remote> <branch> 上传代码及快速合并 git push <remote> :<branch/tag-name> 删除远程分治或标签 git push --tags 上传所有标签。需求4:分支与标签的操作
git branch 显示所有本地分支 git branch <new-branch> 创建新分支 git branch -d <branch> 删除所有本地分支 git checkout <branch/tag> 切换到指定分支或标签 git tag 列出所有本地标签 git tag <tagname> 基于最新提交创建标签 git tag -d <tagname> 删除标签需求5:合并与衍合
git merge <branch> 合并指定分支到当前分支 git rebase <branch> 衍合指定分支到当前分支需求6:查看log
git log 查看提交历史 git log -p <file> 查看指定文件的提交历史 git blame <file> 以列表的方式查看指定文件的提交历史需求7:撤销操作
git reset --hard HEAD 撤销工作目录中所有未提交文件的修改内容 git checkout HEAD <file> 撤销指定文件未提交的内容 git resert <commit> 撤销提价的内容0.获取远程仓库并上传项目到分支
0.创建本地仓库 进入一个你想作为仓库的目录(如 Git_Repo/),初始化仓库:
git init1.创建分支 每个分支的状态都是独立的,所以要先创建分支再获取远程仓库,如果不创建分支,则默认是在master分支下,现在创建一个分支branch0
git branch branch02.获取远程仓库 在这一步之前要,进行远程仓库的连接(见1.连接远程仓库),然后获取远程仓库,你需要给远程仓库一个本地的命名如remote0,这个命名只用于本分支。url为远程仓库的url。
git remote add remote0 'url'3.显示此时有哪些远程仓库
git remote -v4.同步本地仓库的分支与远程仓库要管理的分支 就是将远程分支复制到本地仓库,分两步: 1.拉取本地没有的数据
git fetch remote0 master2.合并分支
git merge remote0 master :[本地分支] 合并到本地分支 git merge remote0 master 合并到当前分支此时,分支数据已经同步,此时可以进行更改。
5.添加所有更改或文件到index缓存
git add .6.提交数据到本地仓库 引号内是对本次提交的注释,一定要有。
git commit -m '第一次提交数据'此时,本地分支是更改后的项目,需要推送到远程分支
7.推送数据到远程分支
git push remote0 master : [本地分支] 推送本地分支数据到远程master分支 git push remote0 master 默认推送当前分支到远程的master分支8.上传成功。 如果遇到错误 ! [rejected] master -> master (non-fast-forward),转到2.push出错
1.连接远程仓库
1.创建密匙 $ ssh-keygen -t rsa -C "邮箱" 2.安装密匙 复制rsa.pub的密匙到git的密匙添加中 3.测试连接 $ ssh -T git@github.com2.push出错 此错误的主要原因还是,远成分支和本地分支的数据不同步。 解决方法,直接拉取最新版的远程分支数据到本地的工作区,再从add那一步再走一遍 git pull origin master --allow-unrelated-history 3.文件管理:
0.创建本地仓库(在本地仓库的目录下,才能进行git操作) git init 1.获取远程项目 git clone url 2.显示远程项目 ls 3.创建文件, touch test1.txt 4.显示本地仓库文件的状态:新增的文件前会有 ?? -s表示以简短的信息输出,如:A,AM,??。 git status -s 5.将文件添加到本地的缓存区:添加到缓存区的文件的status为 A git add test1.txt 6.修改缓存区的文件,修改后,文件的statud是AM,需要再次进行add操作 vim test.txt 7.查看缓存区与未写入缓存区的文件的区别,改动 git diff 8.使用commit进行提交,由于每次提交都需要记录电子邮箱和名字,所以要先配置用户名和邮箱地址。 $ git config --global user.name 'runoob' $ git config --global user.email test@runoob.com 9.使用commit进行提交,-m命令选项用以在命令行中提供注释 git commit -m '提交test1' 10.使用rm 移除文件, git rm <file> 移除文件 git rm -f <file> 如果文件已经修改并暂存到缓存中,需要用强制删除 git rm --cache README 仅清除缓冲区的文件 git rm -r * 递归删除*的所有目录 11.对文件进行修改使用mv git mv REDMAE README.md4.远程仓库管理:
1.创建密匙 $ ssh-keygen -t rsa -C "邮箱" 2.安装密匙 复制rsa.pub的密匙到git的密匙添加中 3.测试连接 $ ssh -T git@github.com 4.初始化本地仓库的几步 mkdir <file> chmod README git init git add README git commit -m '备注信息' 5.提交本地仓库的文件到远程仓库 git remote add name 'url' 将远程仓库(url)添加到本地,name为自己定义的名称 git push -u origin master 将本地master分支的内容提交到remote中的仓库中 6.查看远程仓库,添加-v可以显示远程仓库的url git remote -v 7.提取远程仓库 git fetch 8.获取远程仓库中的数据,并合并到本地所在任意分支 git fetch [alias] 获取本地仓库没有的数据 git merge [alias]/[branch] 将服务器上的任何更新合并到当前分支 例:git fetch origin git merge origin/master 9.将数据推送到远程仓库 git push [alias][branch] 推送新分支与数据到远端仓库 例:git push origin master 10.删除远程仓库 git remote rm [别名] 例:$ git remote -v origin git@github.com:tianqixin/runoob-git-test.git (fetch) origin git@github.com:tianqixin/runoob-git-test.git (push) # 添加仓库 origin2 $ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git $ git remote -v origin git@github.com:tianqixin/runoob-git-test.git (fetch) origin git@github.com:tianqixin/runoob-git-test.git (push) origin2 git@github.com:tianqixin/runoob-git-test.git (fetch) origin2 git@github.com:tianqixin/runoob-git-test.git (push) # 删除仓库 origin2 $ git remote rm origin2 $ git remote -v origin git@github.com:tianqixin/runoob-git-test.git (fetch) origin git@github.com:tianqixin/runoob-git-test.git (push)