Git的一些常见命令

来源:互联网 发布:java环境变量配置linux 编辑:程序博客网 时间:2024/06/06 20:56

这里整理了些常用的Git命令。


Linux命令:

ls
        列举此目录下的所有可见文件
ls -ah
        列举当前目录下的所有文件,包括隐藏文件
cd
        进入某某文件夹,在cd后添加文件夹路径,例如 cd d:/ 进入D盘
mkdir
        创建某某文件夹,在mkdir后添加新建的文件夹名字,例如 mkdir new 新建一个名为new的文件夹
pwd
        用来显示当前所在的文件夹,在window下,仓库所在路径不要包含中文
cat
        cat后加文件名,可以显示在仓库里的那个文件包含的内容,例如 cat new.txt
rm
        rm 后加文件名,可以删除文件管理器中没用的文件

本地仓库:
git init
        把这个当前目录(你进入的目录为选中目录)变成Git可以管理的仓库
git add
        把新放入的文件,或者更改过的文件添加到仓库,git add 后加文件名(包括后缀)

git add .

        把工作区的所有变化都提交到暂缓区(包括文件新增,文件修改,但不包括删除文件

git add -u

        提交已经add过的文件到暂缓区,(包括文件修改,文件删除,但不包括文件新增

git add -A

        上面两个指令的合集,(包括文件新增、修改、删除)

git commit
        提交到仓库,这个命令的全部是git commit -m "XXX" 其中的XXX是本次提交的说明,最好加上这里面的内容,方便以后找回原先的版本。唔,里面最好不要加中文,不然提交不了
git status
        查看当前仓库是否有未提交的修改

git rm
        用于在版本库内删除一个文件。

git mv 

        移动操作,具体使用:git mv XXX.txt aaa/   (第三个位置为文件名,第四个位置为要移动到的文件夹位置)
git diff
        查看当前修改,需要在文件未添加提交前才有效。
git diff HEAD -- file
        可以查看工作区与版本库最新版本的区别,file为文件名
git log
        查看版本历史记录,里面包含了版本号,可以用来回溯
git reset
        回溯其他版本,git reset --hard后加版本号(可以只使用前面7位)
git reset --hard HEAD^
        回溯上一个版本,一个^代表上个版本,^^代表上上个版本,版本太多,可使用HEAD~100,代表回溯前100个版本
git reflog
        显示所有的记录,用于已经返回旧版本,但又想再回到新版本

git checkout -- file
        可以丢弃工作区的修改(即工作区改变,但未add到暂缓区,可把工作区的内容变得和当前版本库内一样)。也可用于文件管理器中删除错误,需要从版本库内恢复文件file为文件名
git reset HEAD file
        把暂缓区的修改回退到工作区,即取消add进暂缓区的修改file为文件名

git checkout -b dev
        创建一个新的分支dev, git check 命令加上-b参数表示创建并切换,相当于这两条指令:
                1.git branch dev
                2. git checkout dev
git branch
        查看当前分支,会列出所有分支,当前分支有*号
git checkout +分支名
        切换分支,例如 git checkout master 为切换回主分支
git merge +分支名
        合并某分支到当前分支,例如git merge dev 把dev分支的工作结果合并到master分支上
        ---有可能会出现无法自动合并分支的情况,这时候需要首先手动解决冲突。解决冲突之后再提交
git branch -d +分支名
        删除某分支
git branch -D +分支名
        强行删除某分支,用于未合并的情况。

git log --graph --pretty=oneline --abbrev-commit
        用带参数的git log可以看到分支的合并情况

git merge --no--ff -m "merge with no-ff" dev
        --no-ff 是个参数,表示禁用Fast forward。使用Fast forward在合并后会丢失分支的数据,没有历史保留。加--no-ff是为了能在历史版本里留下历史,方便后续回找。后面的-m就是要创建一个新的commit

git stash
        把当前工作现场储存起来,等以后恢复现场之后再继续工作
git stash list
        可以查看原先的工作现场
                $ git stash list
                stash@{0}: WIP on dev: 6224937 add merge
git stash apply
        可以恢复现场,但是恢复之后,stash内容并不删除。使用:git stash apply stash@{0}
git stash pop
        恢复现场的同时,把stash内容也删除
git stash drop
        删除stash内容


远程仓库:
git push origin master
        本地提交后,此命令推送最新更新
git push -u origin master
        将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
git push
        简单方式,默认只推送当前分支
git clone
        克隆远程仓库,需要知道仓库地址

git remote
        查看远程库的信息
git remote -v
        显示远程库更详细的信息



多人协作的工作模式:
        1. 首先,可以试图用git push origin branch-name推送自己的修改;
        2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
        3. 如果合并有冲突,则解决冲突,并在本地提交;
        4. 没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name



整理自廖雪峰老师的官方网站

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


原创粉丝点击