常用 Git 命令行

888 阅读4分钟

Git 新建本地仓库:

#1 会在项目中出现.git文件夹
git init

Git 下载远程代码:

#1 示例:git@gitlab.yongzhuan.net:caodd/stock-allocation-pc.git
git clone + url地址

Git 查看当前分支修改内容状态:

#1 查看当前分支修改的文件
git status

Git 查看分支:

#1 查看所有分支列表(本地 和 远程)
git branch -a

#2 查看本地分支,并且在当前分支的前面用"*"标记
git branch

#3 查看远程版本库分支
git branch -r

Git 重命名本地/远程分支:

#1 重命名本地分支(不管是否在当前分支,都可以修改)
git branch -m <old_branch> <new_branch>

#2 重命名远程分支
    1. 修改本地分支名
    git branch -m <old_branch> <new_branch>
    2. 删除要修改的远程分支名
    git push origin --delete <old_branch>
    3. 将改名后的分支push到远程
    git push origin <new_branch>

Git 更新内容放入暂存区:

#1 单个文件放入暂存区
git add <filename>

#2 所有文件放入暂存区
git add .

Git 提交暂存区的内容:

#1 提交暂存区的内容
git commit -m" the commit message "

#2 增补提交. 会使用与当前提交节点相同的父节点进行一次新的提交,旧的提交将会被取消
git commit --amend

Git 拉取远程代码:

#1 拉取远程指定分支代码
git pull origin <origin_branch>

#2 拉取远程所有分支代码
git pull

Git 推送到远程代码:

#1 拉取远程指定分支代码
git push origin <origin_branch>

Git 切换分支 / 创建并切换到本地新分支:

#1 切换分支(commit之后方可切换分支)
git checkout <branch_name>

#2 创建并切换到新的分支(这个命令是将 git branch <new_branch> 和 git checkout <new_branch> 合并在一起的结果)
git checkout -b <new_branch>

Git 放弃修改:

#1 放弃单个文件的修改,即删除修改(注意:该文件没有暂存或者提交改动,已经暂存或者提交改动的不受影响)
git checkout -- <filename>

#2 放弃当前目录下的修改,即删除修改
git checkout .

Git 拉取远程分支到本地:

#1 方法一:
    1. 拉取远程分支并更新本地分支(远程分支拉取到本地后 git branch 不会显示出来,所以需要进行 第二步 )
    git pull
    2.切换到远程拉取到本地的分支上
    git checkout <branch_name>

#2 拉取远程分支并创建本地分支
git checkout -b <local_branch> origin/<origin_branch>

Git 删除本地分支:

#1 删除本地分支 (需要先checkuout到本地别的分支上,再进行删除)
git branch -d <branch_name>

#2 如果有未merge的提交,那么删除分支失败 ,此时可以进行强制删除分支
git branch -D <branch_name>

Git 删除远程分支:

#1 方法一:
git push origin --delete <origin_branch>

#2 方法二:
git push origin :<origin_branch>

Git 查看日志(日志即分支的历史合并):

#1 会输出所有的日志(commit id,commit author,commit date,commit name),如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看日志
git log

#2 --oneline 参数可以将每条日志的输出为一行(commit id 前7位,commit name),如果日志比较多的话,用这个参数能够使结果看起来比较醒目
git log --oneline

#3 -[length]  参数用于指定显示多少条日志(例:git log -1,显示一条)
git log -[length]

#4 --name-status  参数会带出每次提交对应的文件改动
git log --name-status

#5 可以筛选出 yourname 用户提交的所有日志
git log --author yourname

#6 参数用来指定跳过前几条日志(git log --skip=1)
git log --skip=[skip]

#7 -p 参数输出的信息会更多,用来显示提交的改动记录,相当于多次使用 git show [commit_id] 的结果;(git log -1 -p:显示一条)
git log -p

Git 撤销提交:

#1 退回到某个版本,只回退了commit的信息(退回到暂存区 commit,还可以继续修改提交)
git reset --soft <commit id>

#2撤销最近一次提交
git revert HEAD

#3 reset 撤销  彻底回退到某个版本(撤销的内容(即被撤销的commit)会被冲掉)
git reset --hard<commit id>

#4 revert 撤销 (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存
git revert commit

注意:reset 和 revert 的区别:revert 是用一次新的 commit 来回滚之前的 commit,reset 是直接删除指定的 commit