Git经常使用指令

一、建立版本库git

  $ git init并发

二、把文件添加到版本库app

  step1: 用命令 git add 告诉Git,把文件添加到仓库ssh

    $ git add file.txt (一次提交多个文件 $ git add file1.tet file2.txt ...)fetch

  step2: 用命令 git commit 告诉Git,把文件提交到仓库spa

    $ git commit -m "提交描述xxx" 日志

三、查看文件状态code

  $ git statusserver

四、查看文件修改内容rem

  $ git diff file.txt

  或查看工做区和版本库里最新版本版本的区别:

  $ git diff HEAD -- file.txt

五、查看提交日志(从最近到最远,HEAD指向当前版本)

  $ git log 或 $ git log --oneline (简短commit id) 或 $ git log --pretty=oneline (完整commit id)

六、查看命令历史(可查看版本回退后不见的commit id,以便从新返回到“将来”某个版本)

  $ git reflog

七、查看文件内容

  $ cat file.txt

八、版本回退

  $ git reset --hard commit_id (commit_id 具体的提交ID)

  $ git reset --hard HEAD^ (HEAD^ 表示回退到上个版本)

九、撤销工做区的修改

  $ git checkout -- file.txt (命令中“--”很重要,没有“--”,就变成“切换到另外一个分支”的命令了)

  分两种状况:

    一种是file.txt文件自修改后尚未被存放到暂存区(未git add),如今,撤销修改就回到和版本库如出一辙的状态;

    一种是file.txt文件已添加到暂存区后,又作了修改,如今,撤销修改就回到添加到暂存区后的状态(已git add的内容不变,未git add的内容所有撤销修改)。

    总之,就是让这个文件回到最近一次git commit 或git add 时的状态。

十、撤销暂存区的修改

  $ git reset HEAD file.txt (把暂存区(git add)的修改撤销掉,从新放回工做区)

十一、删除文件

  step1:直接删除文件,或者用rm命令(没有git前缀)

    $ rm file.txt

  step2: 面临两个选择,肯定要删除仍是从新恢复

  从新恢复:

    $ git checkout -- file.txt (git checkout实际上是用版本库里的版本替换工做区的版本,不管工做区是修改仍是删除,均可以“一键还原”)

  肯定要删除(须要执行两个命令):

    $ git rm file.txt (或 git add file.txt)

    $ git commit -m "提交描述" 

十二、关联本地仓库到远程仓库(远程空仓库)

  step1: 关联远程仓库

    $ git remote add origin git@server-name:path/repo-name.git

  step2: 推送本地分支的全部内容到远程仓库

    $ git push -u origin master (第一次推送时加上参数 -u,会将本地的master分支和远程的master分支关联起来)

  step3: 推进后续的本地提交到远程仓库

    $ git push origin master (后续的推送不须要加参数 -u,会自动关联本地的master分支和远程的master分支)

  注意:本地的仓库名须要与远程的仓库名相同

1三、关联本地仓库到远程仓库(远程仓库已有内容)

  step1: 关联远程仓库

    $ git remote add origin git@server-name:path/repo-name.git

  step2: 拉取远程内容到本地

    $ git pull origin master --allow-unrelated-histories

  step3: 解决冲突

    step2有时会出现冲突(master|MERGING),须要根据实际状况解决冲突

  step4: 提交合并后的内容

    $ git add file.txt

    $ git commit -m “解决冲突”

    $ git push -u origin master

  说明:step2中,执行命令git push -u origin master 会由于远程仓库中已有提交而失败,执行git pull 会由于还未关联远程分支而失败;

1四、删除与远程库间的关联

  $ git remote rm origin (删除成功后可从新关联新的远程库)

1四、从远程库克隆

  $ git clone git@server-name:path/repo-name.git (或 git clone https://server-name:path/repo-name.git)

  说明:

    ① Git支持多种协议,默认的 git:// 使用ssh,但也可使用 https 等其它协议

    ② 使用 https 除了速度慢之外,还有个最大的麻烦是每次推送都必须输入口令(有的只须要第一次输入)

1五、分支经常使用命令

  $ git branch (查看本地分支;git branch -r 查看远程分支;git branch -a 查看本地和远程分支)  

  $ git branch <branch_name> (建立本地分支)

  $ git checkout <branch_name> 或者 git switch <branch_name> (切换分支)

  说明:git switch 命令是git v2.23 版本新发布的

  $ git checkout -b <branch_name> 或者 git switch -c <branch_name> (建立并切换分支)  

  $ git checkout -b <branch_name> origin/<branch_name> (检出远程分支到本地)

  $ git branch --set-upstream-to=origin/<branch_name> <branch_name> (创建本地分支和远程分支的关联,远程库中已有要关联的分支才成功)

  $ git push --set-upstream origin <branch_name> (创建本地分支和远程分支的关联,远程库中没有要关联的分支)

  $ git merge <branch_name> (合并branch_name分支到当前分支)

  $ git branch -d <branch_name> (删除本地分支)

  $ git branch -D <branch_name> (强行删除,可强行删除有提交未合并的分支)

  $ git push origin --delete <branch_name> (删除远程分支)

  $ git push origin <branch_name> (推送本地提交到远程分支)

  $ git branch -vv (查看本地分支与远程分支的追踪关系)

  $ git fetch -p (删除远程仓库已删除的远程分支,或:git fetch --prune origin)

1六、合并、解决冲突

  step1: 合并其它分支内容到当前分支

    $ git merge branch_feature

  step2: 解决冲突(当合并发生冲突时,状态变为 mater|MERGIN)

    ① 根据具体状况手动解决冲突

    ② git add file.txt

    ③ git commit -m "confict fixed" (状态恢复为 master)

    ④ git push origin master

  提示:查看分支的合并状况,git log --graph --pretty=oneline --abbrev-commit

1七、禁用Fast forward模式

  $ git merge --no-ff -m "合并描述信息" develop

1八、暂存

  $ git stash

  $ git stash list (查看全部暂存)

  $ git stash apply (恢复stash,但不删除stash)

  $ git stash pop (恢复stash,同时删除stash)

  $ git stash drop (删除stath)

  $ git stash apply stash@{0} (恢复指定stash,其它指令相似)

1九、复制其它分支的提交内容到当前分支

  $ git cherry-pick <commit_id>

20、查看远程库信息

  $ git remote

  $ git remote -v (“fetch”, 可拉取;“push”,可推送。没有“push”的连接,说明没有推送权限)

2一、合并提交

  $ git rebase i start_commit_id end_commit_id

2二、强制推送

  $ git push -f origin branch_feature

2三、本地分支关联远程分支 

  $ git branch --set-upstream-to=origin/<branch_name> <branch_name> (创建本地分支和远程分支的关联,远程库中已有要关联的分支才成功) 

  $ git push --set-upstream origin <branch_name> (创建本地分支和远程分支的关联,远程库中没有要关联的分支)

 2四、获取远程主机的更新到本地

  $ git fetch origin

2五、删除远程已删除的分支

  step1: 查看remote地址,远程分支,还有本地分支与之相对应关系等信息

    $ git remote show origin

  step2: 根据提示,删除远程仓库中已不存在的远程分支

    $ git remote prune origin

相关文章
相关标签/搜索